函数返回结构体的出现诸多问题
开始是源于这样一个问题,从键盘输入十个同学的成绩,然后求出这是个成绩的平均值,最大值,最小值,要求使用调用函数的方式。例题后面的答案是使用调用的函数return平均值,然后最大值和最小值使用全局变量,但是书上又说尽量不要使用全局变量,所以我想用别的办法让这个自己写的函数直接可以返回平均值、最大值、和最小值,于是想到了用这个函数返回数组或者定义一个结构体,结构体包含上面这个变量,然后返回到main函数。
可是关键字是,C语言可以返回结构体或者数组类型的变量吗?
首先我写的代码如下:
程序代码:#include "stdio.h"
typedef struct
{
float average;
float max;
float min;
}score;
score fixscore(float arr[10]){
float max = arr[0];
float min = arr[0];
float sum = 0;
float average = 0;
int i = 0;
for(i=0;i<10;i++){
if(arr[i]>=max)
max = arr[i];
else if(arr[i]<=min)
min=arr[i];
sum = sum+arr[i];
}
average = sum/10;
score score1;
score1.average = average;
score1.max = max;
score1.min = min;
return(score1);
}
int main(){
score score1;
int i;
float arr[10];
for(i=0;i<10;i++)
{
scanf("%f",&arr[i]);
}
fixscore(arr[10]);
printf("%f \n",score1.average);
printf("%f \n",score1.max);
printf("%f \n",score1.min);
return 0;
}
[ 本帖最后由 Jaggle 于 2013-9-20 18:10 编辑 ]









