| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 565 人关注过本帖
标题:[求助]
只看楼主 加入收藏
denghaiai
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2005-12-7
收藏
 问题点数:0 回复次数:7 
[求助]

求高手帮忙!
我做的是求10个学生的5门课程的平均分!
我觉得我编的没错为什么我的输出只有一个课程的成绩的?
帮个忙吧!

谢谢了!
程序如下:
#define N 10
#define M 5
float score[N][M];
float a_stu[N],a_cour[M];
int r,c;
main()
{float s_var(void);
float highest();
void input_stu(void);
void aver_stu(void);
void aver_cour(void);
int i,j;
float h;
input_stu();
aver_stu();
aver_cour();
printf("\n NO. cour1 cour2 cour3 cour4 cour5 aver");
for(i=0;i<N;i++)
{printf("\n NO.%2d",i+1);
for(j=0;j<M;j++);
printf("%8.2f",score[i][j]);
printf("%8.2f",a_stu[i]);
}
printf("\naverage:");
for(j=0;j<M;j++)
printf("%8.2f",a_cour[j]);
h=highest();
printf("\nhighest:%7.2f NO.%2d course%2d\n",h,r,c);
}
void input_stu(void)
{int i,j;
for (i=0;i<N;i++)
{printf("\nInput score of student%2d:\n",i+1);
for(j=0;j<M;j++)
scanf("%f",&score[i][j]);
}
}
void aver_stu(void)
{int i,j;
float s;
for (i=0;i<N;i++)
{for (j=0,s=0;j<M;j++)
s+=score[i][j];
a_stu[i]=s/5.0;
}
}
void aver_cour(void)
{int i,j;
float s;
for(j=0;j<M;j++)
{s=0;
for(i=0;i<N;i++)
s+=score[i][j];
a_cour[j]=s/(float)N;
}
}
float highest()
{float high;
int i,j;
high=score[0][0];
for(i=0;i<N;i++)
for(j=0;j<M;j++)
if(score[i][j]>high)
{high=score[i][j];
r=i+1;
c=j+1;
}
return(high);
}

[此贴子已经被作者于2005-12-7 20:31:13编辑过]

2005-12-07 20:28
layabout
Rank: 1
等 级:新手上路
帖 子:180
专家分:0
注 册:2005-12-2
收藏
得分:0 
程序呢??

学习不难!难的是一辈子兢兢业业,老老实实,勤勤恳恳的学习!!!
2005-12-07 20:30
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
for(j=0;j<M;j++);
初步判断,这里错了

淘宝杜琨
2005-12-07 20:39
layabout
Rank: 1
等 级:新手上路
帖 子:180
专家分:0
注 册:2005-12-2
收藏
得分:0 
看的繁,用结构体做吧

学习不难!难的是一辈子兢兢业业,老老实实,勤勤恳恳的学习!!!
2005-12-07 20:41
cherrysindow
Rank: 2
等 级:论坛游民
帖 子:124
专家分:10
注 册:2005-10-21
收藏
得分:0 
#define N 10
#define M 5
float score[N][M];
float a_stu[N],a_cour[M];
int r,c;
main()
{float s_var(void);
float highest();
void input_stu(void);
void aver_stu(void);
void aver_cour(void);
int i,j;
float h;
input_stu();
aver_stu();
aver_cour();
printf("\n NO. cour1 cour2 cour3 cour4 cour5 aver");
for(i=0;i<N;i++)
{printf("\n NO.%2d",i+1);
for(j=0;j<M;j++); //可能存在的问题
printf("%8.2f",score[i][j]);
printf("%8.2f",a_stu[i]);
}
printf("\naverage:");
for(j=0;j<M;j++)
printf("%8.2f",a_cour[j]);
h=highest();
printf("\nhighest:%7.2f NO.%2d course%2d\n",h,r,c);
}

我没有仔细看,我想说的是:

这样的程序基本上愿意仔细看的人很少

写程序的时候不是为难别人

所以写程序的时候要注意可读性

我不是说现在要写注释等,现在学习的时候没有哪个必要

你可以自己看你的程序,可以说很乱

写的时候注意空格和换行和缩进

将程序排版的象样一些

比如一个函数的所有语句在同一列

循环体比循环语句缩进等

好好注意,我说的不是你一个人的问题

我最近在这里看的不少

好多人写的代码和你一样

别人改错看的时候很难弄懂你的结构

自己以后看的时候也一样很难看懂


虽然我很普通,但是我很讲道理 如果我的问题冒犯了您 请不要生气 因为我是无意的
2005-12-07 20:56
layabout
Rank: 1
等 级:新手上路
帖 子:180
专家分:0
注 册:2005-12-2
收藏
得分:0 

struct student{

int no;//*学号*//

int score[5];

}stud[10],*p;

main()

{int i=0,sum=0;
int aver[10];
for(i=0;i<=9;i++)
scanf("%d,%d",&stud[i].no,&stud[i].score[0],&stud[i].score[1],
&stud[i].score[2],&stud[i].score[3],&stud[i].score[4]);
for(i=0,p=stud;i<=9,p<=stud+9;i++,p++)
{sum=p->score[0]+p->score[1]+p->score[2]+p->score[3]+p->score[4];
aver[i]=sum/5
printf("no:%d score:%d",p->no,aver[i])
}
}


学习不难!难的是一辈子兢兢业业,老老实实,勤勤恳恳的学习!!!
2005-12-07 21:22
denghaiai
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2005-12-7
收藏
得分:0 
问题解决了真的很谢谢你:)
2005-12-07 21:40
layabout
Rank: 1
等 级:新手上路
帖 子:180
专家分:0
注 册:2005-12-2
收藏
得分:0 
客气,互相帮助,互相学习,

学习不难!难的是一辈子兢兢业业,老老实实,勤勤恳恳的学习!!!
2005-12-07 21:41
快速回复:[求助]
数据加载中...
 
   



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

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