为了账号安全,请及时绑定邮箱和手机立即绑定

这个C语言程序怎么改才对?

这个C语言程序怎么改才对?

C
子非漁 2017-04-13 10:42:44
#include <stdio.h>/*输入10个学生5门课的成绩,分别用函数求:①每个学生平均分;②每门课的平均分;③找出最高的分数所对应的学生和课程。实验要求:输入事先已编好的程序,并运行该程序。分析运行结果是否正确。 */#define x 10#define y 5float stu_average(int mark[x][y]);void score_average(int score[x][y]);int highest(float ave[x]);int main(){ int a[x][y]; float ave[x]; int i=0,j=0,num; for(i=0;i<x;i++) { for(j=0;j<y;j++){scanf("%d",&a[i][j]);} } printf("Part 1: the averages of every student\n");//10个学生平均分 for(j=0;j<x;j++){ ave[j]=stu_average(a); printf("%.6f\n",ave[j]);} printf("Part 2: the averages of every course score\n");//5门课程平均分 for(j=0;j<y;j++) score_average(ave); printf("Part 3: a student  and  course scores of the student whose average is the highest\n");//最高分数 num=highest(ave); printf("%d\n",num+1); printf("%d %d %d %d %d",a[num+1][0],a[num+1][1],a[num+1][2],a[num+1][3],a[num+1][4]); return 0;} float stu_average(int mark[x][y]){    float average; int m=0,n=0,sum; for(m=0;m<x;m++) { for(n=0;n<y;n++){sum+=mark[m][n];} average=(float)sum/5.0; return average; sum=0; }}void score_average(int score[x][y]){ int i=0,j=0,sum; float average[x]; for(i=0;i<y;i++) { for(j=0;j<x;j++){sum+=score[j][i];} average[i]=(float)sum/10.0; printf("%.6f\n",average[i]); sum=0; }}int highest(float ave[x]){ int i,j=0; float max; float find_max[10]={ave[0],ave[1],ave[2],ave[3],ave[4],ave[5],ave[6],ave[7],ave[8],ave[9]}; max=find_max[0]; for(i=0;i<x;i++) {  if(max<=find_max[i])  max=find_max[i];  j=i; } return (j+1);}错误:C:\Users\Administrator\Desktop\c\Text2.c(2) : error C2006: #include expected a filename, found 'newline'C:\Users\Administrator\Desktop\c\Text2.c(5) : error C2054: expected '(' to follow 'include'C:\Users\Administrator\Desktop\c\Text2.c(6) : error C2085: 'average' : not in formal parameter listC:\Users\Administrator\Desktop\c\Text2.c(6) : error C2143: syntax error : missing ';' before '{'C:\Users\Administrator\Desktop\c\Text2.c(20) : warning C4013: 'printf' undefined; assuming extern returning intC:\Users\Administrator\Desktop\c\Text2.c(21) : error C2143: syntax error : missing ';' before '{'C:\Users\Administrator\Desktop\c\Text2.c(21) : error C2143: syntax error : missing ')' before '{'C:\Users\Administrator\Desktop\c\Text2.c(21) : error C2146: syntax error : missing ';' before identifier 'ave'C:\Users\Administrator\Desktop\c\Text2.c(21) : error C2143: syntax error : missing ')' before ';'C:\Users\Administrator\Desktop\c\Text2.c(28) : error C2143: syntax error : missing ';' before 'for'C:\Users\Administrator\Desktop\c\Text2.c(28) : error C2143: syntax error : missing ')' before 'for'C:\Users\Administrator\Desktop\c\Text2.c(28) : error C2143: syntax error : missing ';' before 'if'C:\Users\Administrator\Desktop\c\Text2.c(28) : error C2143: syntax error : missing ')' before 'if'C:\Users\Administrator\Desktop\c\Text2.c(28) : error C2146: syntax error : missing ')' before identifier 'printf'C:\Users\Administrator\Desktop\c\Text2.c(34) : error C2146: syntax error : missing ';' before identifier 'xi'C:\Users\Administrator\Desktop\c\Text2.c(34) : error C2143: syntax error : missing ')' before ';'C:\Users\Administrator\Desktop\c\Text2.c(36) : error C2146: syntax error : missing ';' before identifier 'd'C:\Users\Administrator\Desktop\c\Text2.c(36) : warning C4013: 'pow' undefined; assuming extern returning intC:\Users\Administrator\Desktop\c\Text2.c(36) : error C2143: syntax error : missing ')' before ';'C:\Users\Administrator\Desktop\c\Text2.c(40) : error C2006: #include expected a filename, found 'newline'C:\Users\Administrator\Desktop\c\Text2.c(41) : error C2006: #include expected a filename, found 'newline'C:\Users\Administrator\Desktop\c\Text2.c(42) : error C2006: #include expected a filename, found 'newline'C:\Users\Administrator\Desktop\c\Text2.c(43) : warning C4005: 'N' : macro redefinition        C:\Users\Administrator\Desktop\c\Text2.c(3) : see previous definition of 'N'C:\Users\Administrator\Desktop\c\Text2.c(44) : warning C4005: 'M' : macro redefinition        C:\Users\Administrator\Desktop\c\Text2.c(4) : see previous definition of 'M'C:\Users\Administrator\Desktop\c\Text2.c(46) : warning C4028: formal parameter 1 different from declarationC:\Users\Administrator\Desktop\c\Text2.c(47) : warning C4028: formal parameter 1 different from declarationC:\Users\Administrator\Desktop\c\Text2.c(52) : error C2065: 'new' : undeclared identifierC:\Users\Administrator\Desktop\c\Text2.c(52) : warning C4047: 'initializing' : 'float *' differs in levels of indirection from 'int 'C:\Users\Administrator\Desktop\c\Text2.c(52) : error C2143: syntax error : missing ';' before 'type'C:\Users\Administrator\Desktop\c\Text2.c(52) : warning C4091: ' ' : ignored on left of 'float ' when no variable is declaredC:\Users\Administrator\Desktop\c\Text2.c(58) : error C2146: syntax error : missing ';' before identifier 'scanf'C:\Users\Administrator\Desktop\c\Text2.c(58) : warning C4013: 'scanf' undefined; assuming extern returning intC:\Users\Administrator\Desktop\c\Text2.c(58) : error C2143: syntax error : missing ')' before ';'C:\Users\Administrator\Desktop\c\Text2.c(62) : error C2143: syntax error : missing ';' before '{'C:\Users\Administrator\Desktop\c\Text2.c(62) : error C2143: syntax error : missing ')' before '{'C:\Users\Administrator\Desktop\c\Text2.c(62) : error C2146: syntax error : missing ';' before identifier 'printf'C:\Users\Administrator\Desktop\c\Text2.c(62) : error C2143: syntax error : missing ')' before ';'C:\Users\Administrator\Desktop\c\Text2.c(69) : fatal error C1004: unexpected end of file found执行 cl.exe 时出错.Text2.exe - 1 error(s), 0 warning(s)之前改了,输入的数据的出来的结果也不正确 求大神
查看完整描述

1 回答

已采纳
?
Tanh

TA贡献7条经验 获得超5个赞

#include <stdio.h>
/*输入10个学生5门课的成绩,分别用函数求:①每个学生平均分;②每门课的平均分;③找出最高的分数所对应的学生和课程。
实验要求:输入事先已编好的程序,并运行该程序。分析运行结果是否正确。 */
#define x 10
#define y 5
float stu_average(int mark[x][y]);
void score_average(int score[x][y]);
int highest(float ave[x]);
int main()
{
int a[x][y];
float ave[x];
int i=0,j=0,num;
printf("输入10位学生的5门课程成绩.\n");
for(i=0;i<x;i++)
{
printf("输入第%d位学生的5门课程成绩.\n",i+1);
for(j=0;j<y;j++){scanf("%d",&a[i][j]);}
}
printf("Part 1: the averages of every student\n");//10个学生平均分,该学生平均每门课的成绩
for(j=0;j<x;j++)
{
stu_average(a);
}
printf("Part 2: the averages of every course score\n");//5门课程平均分
for(j=0;j<y;j++)
{
score_average(a);
}
return 0;
}
float stu_average(int mark[x][y])
{
    float average;
int m=0,n=0,sum=0;
for(m=0;m<x;m++)
{
for(n=0;n<y;n++){sum+=mark[m][n];}
average=(float)sum/5;
printf("%.6f\n",average);
return 0;
}
}
void score_average(int score[x][y])
{
int m=0,n=0,sum=0;
float average;
for(n=0;n<y;n++)
{
for(m=0;m<x;m++){sum+=score[m][n];}
average=(float)sum/10;
}printf("%.6f\n",average);
}


查看完整回答
1 反对 回复 2017-04-13
  • 1 回答
  • 0 关注
  • 3050 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信