函数返回结构体的出现诸多问题
开始是源于这样一个问题,从键盘输入十个同学的成绩,然后求出这是个成绩的平均值,最大值,最小值,要求使用调用函数的方式。例题后面的答案是使用调用的函数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 编辑 ]