| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 837 人关注过本帖
标题:求帮忙看一道题和修改代码。。。
取消只看楼主 加入收藏
yenga
Rank: 1
等 级:新手上路
帖 子:39
专家分:7
注 册:2013-11-25
结帖率:75%
收藏
已结贴  问题点数:31 回复次数:6 
求帮忙看一道题和修改代码。。。
实验内容1::试编写一个程序完成:有5个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入5个学生数据,要求输出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩、平均分数)。
 
实验要求:(1)要求用一个input函数输入5个学生数据;应一个average函数求平均分;用max函数求出最高分学生数据;总平均分和最高分的学生的数据都在主函数中输出。
测试数据
1
Zhang Li
89
69
77
2
Li Ling
99
100
66
3
Wang Lan
79
56
88
4
Zhao Xin
88
95
100
5
Yang Ke
77
50
88
结果

81.40
4
Zhao Xin
88.00
95.00
100.00
94.33


我自己写的。。。



#include"stdio.h"
float averages();
int max();
 float sum=0.00,ave;
struct input
{
int number;
char name[10];
float score[3];
};
struct input student[5];

main()
{
float m;
int re,i;


{
int j,i;
for(j=0;j<5;j++)
{
scanf("%d",&student[j].number);
scanf("%s",student[j].name);
for(i=0;i<3;i++)
scanf("%f",&student[j].score[i]);
}
}


m=averages();
printf("%.2f",m);

re=max();
printf("%d",&student[re].number);
printf("%s",student[re].name);
for(i=0;i<3;i++)
printf("%f",&student[re].score[i]);

     for(i=0;i<3;i++)
     sum+=student[re].score[i];
     ave=sum/3;
printf("%.2f",ave);
}

float averages()
{
int j,i;
float sum=0.00,s;
     for(j=0;j<5;j++)
     {    for(i=0;i<3;i++)
     sum+=student[j].score[i];  }
        s=sum/15;

return s;   
}
   

int max()
{
float max,ave[5];
int best;
int j,i;

     for(j=0;j<5;j++)
     {float sum=0.00;
     for(i=0;i<3;i++)
     sum+=student[j].score[i];
     ave[j]=sum/3;}
max=ave[0];
for(j=0;j<5;j++)
if(ave[j]>max)
best=j+1;

return best;
}
 



首先我不明白怎么叫做Input函数,需要调用还是直接放在主程序中
还有一个函数调用后的结果怎么用到另一个调用函数中,比如我在算平均分的函数的结果(5个平均分)怎么可以用到Max函数中;
第三是可不可以同时返回一个结构体,或者怎么返回一个float平均值和一个Int编号的值

我上面打的函数有点奇葩,,怎么修改好,,,
求解救。。
搜索更多相关主题的帖子: average 键盘 姓名 
2013-12-14 10:43
yenga
Rank: 1
等 级:新手上路
帖 子:39
专家分:7
注 册:2013-11-25
收藏
得分:0 
回复 3楼 韶志
为什么你用的子函数不用返回值,就可以直接应用到主函数中的???
2013-12-14 15:15
yenga
Rank: 1
等 级:新手上路
帖 子:39
专家分:7
注 册:2013-11-25
收藏
得分:0 
回复 3楼 韶志
还有是不是void average()的内容写在Main函数前面
就不用再在#include下面写void average();了
2013-12-14 15:21
yenga
Rank: 1
等 级:新手上路
帖 子:39
专家分:7
注 册:2013-11-25
收藏
得分:0 
#include<stdio.h>

float Ave;
struct student
{
int number;
char name[10];
float score1,score2,score3;
float ave;
};
struct student student[5],temp;


void input(int i)
{
scanf("%d",&student[i].number);
scanf("%s",student[i].name);
scanf("%f%f%f",&student[i].score1,&student[i].score2,&student[i].score3);
}



void averages()
{
int i;
float sum=0.00,Ave;
     for(i=0;i<5;i++)
     {
       student[i].ave=(student[i].score1+student[i].score2+student[i].score3)/3;  
       sum+=student[i].ave;}
           Ave=sum*3/5;

}


void max()
{
float max;
int i;
max=student[0].ave;

for(i=0;i<5;i++)
{
    if(max<student[i].ave)
    {max=student[i].ave;
    temp=student[i]; }
}
 
}




我已经0错误了,
但是输入数据后怎么没输出就跳出来了
2013-12-14 17:12
yenga
Rank: 1
等 级:新手上路
帖 子:39
专家分:7
注 册:2013-11-25
收藏
得分:0 
回复 8楼 韶志
sorry a..
复制出错

#include<stdio.h>

float Ave;
struct student
{
int number;
char name[10];
float score1,score2,score3;
float ave;
};
struct student student[5],temp;


void input(int i)
{
scanf("%d",&student[i].number);
scanf("%s",student[i].name);
scanf("%f%f%f",&student[i].score1,&student[i].score2,&student[i].score3);
}


void averages()
{
int i;
float sum=0.00,Ave;
     for(i=0;i<5;i++)
     {
       student[i].ave=(student[i].score1+student[i].score2+student[i].score3)/3;  
       sum+=student[i].ave;}
           Ave=sum*3/5;

}


void max()
{
float max;
int i;
max=student[0].ave;

for(i=0;i<5;i++)
{
    if(max<student[i].ave)
    {max=student[i].ave;
    temp=student[i]; }
}
 
}








main()
{
 int i;
    for(i=0;i<5;i++)
        input(i);
    averages();
    max();
   
   printf("%f",Ave);
    printf("%d\n%s\n%.2f\n%.2f\n%.2f\n%.2f\n",temp.number,temp.name,temp.score1,temp.score2,temp.score3,temp.ave);


}
2013-12-15 09:14
yenga
Rank: 1
等 级:新手上路
帖 子:39
专家分:7
注 册:2013-11-25
收藏
得分:0 
回复 10楼 韶志
我复制了下面这个去测试的
1
Zhang Li
89
69
77
2
Li Ling
99
100
66
3
Wang Lan
79
56
88
4
Zhao Xin
88
95
100
5
Yang Ke
77
50
88
2013-12-16 17:22
yenga
Rank: 1
等 级:新手上路
帖 子:39
专家分:7
注 册:2013-11-25
收藏
得分:0 
回复 12楼 pangshch
我后来有改成gets也是同样的结果的。。。
2013-12-17 09:33
快速回复:求帮忙看一道题和修改代码。。。
数据加载中...
 
   



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

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