首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

课本上的初学者c语言有关问题!希望大家帮小弟我看下,小弟在此谢过!多谢

2012-03-24 
课本上的菜鸟c语言问题!希望大家帮我看下,小弟在此谢过!谢谢!那位高人帮小弟看下这个程序是什么地方有问题

课本上的菜鸟c语言问题!希望大家帮我看下,小弟在此谢过!谢谢!
那位高人帮小弟看下这个程序是什么地方有问题。
我感激不尽,谢谢。
邮箱:hehv@qq.com  

/*要求:
输入10个学生的五门课的成绩,分别函数实现下列功能:
1计算每个学生平均分
2计算每门课的平均分
3找出所有50个分数中最高的分数所对应的学生和课程。*/
#include   <stdio.h>
#define   N   5
#define   M   10
float   ach[M][N];
void   main()
{
void   input();
void   equal_stu();
void   equal_cour();
void   good();
input();
equal_stu();
equal_cour();
good();
}
void   input(void)
{
int   i,j;
for(i=1;i <=M;i++)
{
printf( "%d号学生的成绩是: ",i);
for(j=1;j <N;j++)
scanf( "%d   ",&ach[i][j]);
}
}

void   equal_stu(void)
{
int   i,j;
float   equal=0,s=0;
for(i=1;i <=M;i++);
{
      for(j=1;j <=N;j++);
s=s+ach[i][j];
equal=s/5.0;
printf( "第%d个学生的平均分是:%f ",i,equal);
}
}

void   equal_cour(void)
{
int   i,j;
float   equal=0,s1=0;
for(j=1;j <=N;j++)
{
for(i=1;i <=M;i++)
{
s1=s1+ach[i][j];
equal=s1/10;
printf( "第%d门课的平均分是:%f ",j,equal);
}
}
}

void   good()
{
int   max,i,j,people,cla;
max=ach[0][0];
{
for(i=1;i <=M;i++)
for(j=1;j <=N;j++)
{
if(ach[i][j]> max)
{
max=ach[i][j];
        people=i;
cla=j;
}
}
}
printf( "最高分为:%d ",max);
printf( "是第%d个学生的第%d门课 ",people,cla);
}

[解决办法]
#include <stdio.h>
#define N 5
#define M 3
float ach[M][N];
void main()
{
void input(void);
void equal_stu(void);
void equal_cour(void);
void good(void);

input ();
equal_stu();
equal_cour();
good();
}

void input(void)
{
int i,j;

for(i=1;i <=M;i++)
{
printf( "\n%d号学生的成绩是:\n ",i);
for(j=1;j <=N;j++)
{
printf ( "\n第 %d 门的成绩: ", j);
scanf( "%f ", &ach[i][j]); // 之前你定义了float ach[M][N];那么输入的时候只能用%f
}
}
}

void equal_stu(void)
{
int i,j;
float equal=0,s=0;

for(i=1;i <=M;i++)
{
s = 0;// 外循环一次后s的值要设为0
for(j=1;j <=N;j++)
{
s=s+ach[i][j];
}

equal=s/5.0;
printf( "\n\n第%d个学生的平均分是:%f ",i,equal);
}
}

void equal_cour(void)
{
int i,j;
float equal=0,s1=0;
for(j=1;j <=N;j++)
{
s1 = 0;
for(i=1;i <=M;i++)
{
s1=s1+ach[i][j];
}

equal=s1/3;
printf( "\n\n第%d门课的平均分是:%f ",j,equal);
}
}

void good()
{
float max;
int i,j,people,cla;
max=ach[0][0];
{
for(i=1;i <=M;i++)
for(j=1;j <=N;j++)
{
该改的地方都改了,已经没问题了

if(ach[i][j]> =max)
{
max=ach[i][j];
people=i;
cla=j;
}
}
}
printf( "\n最高分为:%f ", max);
printf( "\n是第%d个学生的第%d门课 ",people,cla);
}

热点排行