| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 450 人关注过本帖
标题:此循环为何不能输入第二组数据?
只看楼主 加入收藏
断浪留丹
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-12-11
收藏
 问题点数:0 回复次数:2 
此循环为何不能输入第二组数据?
这个程序的目的是输入若干个学生的5门课的成绩,然后输出,再找出最高分,输出对应的学生和分数。但我试了好几次,它只能输出第一组数据,为什么呢?我实在搞不明白,希望高手指点!

#include<stdio.h>
#include<stdlib.h>
void InputScore();
int FindMaxScore(int n);
float AverageEachStu();
float AverageEachCourse();
void Calculate();
void DisplayScore();
#define N 10
int score[N][5];
float averageStu[N];
float averageCourse[5];
struct StudentScore
{
int num[3000];
char name[30];
float score[3000];
};
struct StudentScore student[N];
int main(void)
{
int i;
int stu=0;
int maxstu;
for(stu=0;stu<N;stu++)
{
InputScore(stu);
Calculate(stu);
break;
}
maxstu=FindMaxScore(stu);
printf("得最高分的人是:%s\n",student[stu].name);
printf("他(她)的成绩是:%f",student[stu].score);
DisplayScore(maxstu);
for(i=0;i<5;i++)
averageCourse[i]=AverageEachCourse(N,i);
printf("平均成绩是%f\n",averageCourse[i]);
system("PAUSE");
return 0;
}
void InputScore()
{
int i,n;

for(n=0;n<N;n++)
{
for(i=0;i<N;i++)
{
printf("\n请输入第%d个人的学号:",i+1);
scanf("%d",student[i].num);
printf("输入姓名:");
scanf("%s",student[i].name);
printf("输入成绩:");
scanf("%f",student[i].score);
}
break;
}
printf("\n\n学号\t\t\t姓名\t\t\t成绩\n\n");
for(i=0;i<N;i++)
{
for(n=0;n<N;n++)
printf("\n%d\t\t\t%s\t\t\t%f\t\t\t%f\n",student->num,student->name,student->score);
}

}
int FindMaxScore(int n)
{
int max=0;
for(n=0;n<5;n++)
{
int i;
for(i=0;i<N;i++)
{
max=score[i][n]>score[max][n]?i:max;
}
}
return max;
}
float AverageEachStu()
{
int i,n;
float sum=0;
for(n=0;n<N;n++)
{
for(i=0;i<5;i++)
sum+=score[n][i];
}
return sum/5;
}
float AverageEachCourse()
{
int i,n;
float sum=0;
for(i=0;i<5;i++)
{
for(n=0;n<N;n++)
sum+=score[n][i];
}
return sum/N;
}
void Calculate()
{
AverageEachStu();
AverageEachCourse();
}
void DisplayScore()
{
int i=0;
int n=0;

printf("%f",score[i][n]);

}

搜索更多相关主题的帖子: 数据 输入 
2006-12-13 15:35
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 
请问楼主用什么编译器。

[此贴子已经被作者于2006-12-13 15:45:00编辑过]



谁有强殖装甲第二部,可以Q我460054868
2006-12-13 15:44
abcBoy
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2006-12-13
收藏
得分:0 
[CODE]for(n=0;n<N;n++)
{
for(i=0;i<N;i++)
{
printf("\n请输入第%d个人的学号:",i+1);
scanf("%d",student[i].num);
printf("输入姓名:");
scanf("%s",student[i].name);
printf("输入成绩:");
scanf("%f",student[i].score);
}
break;//为什么使用两重循环,然后来个break???
}[/CODE] 
就看了你这段程序,就感到你应该先去看看课本。
scanf("%d",&var);
而且,很多函数里面的形参也不对应,看你上面的函数参数的传递有很多问题。
2006-12-13 15:45
快速回复:此循环为何不能输入第二组数据?
数据加载中...
 
   



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

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