| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1399 人关注过本帖
标题:函数返回结构体的出现诸多问题
取消只看楼主 加入收藏
Jaggle
Rank: 1
等 级:新手上路
帖 子:4
专家分:2
注 册:2013-9-15
结帖率:50%
收藏
已结贴  问题点数:18 回复次数:0 
函数返回结构体的出现诸多问题
开始是源于这样一个问题,从键盘输入十个同学的成绩,然后求出这是个成绩的平均值,最大值,最小值,要求使用调用函数的方式。

例题后面的答案是使用调用的函数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 编辑 ]
搜索更多相关主题的帖子: return 关键字 结构体 平均值 最大值 
2013-09-20 17:58
快速回复:函数返回结构体的出现诸多问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016972 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved