计算5门课程的平均分,10名同学的平均分,最高分情况

a136106345 2011-11-20 03:32:39
#include <stdio.h>
#define N 10
#define M 5
int i,j,a,b,c;
float s=0,m=0;
int main()
{
int maxvalue(int array[][M]);
int averageN (int array[][M]);
int averageM (int array[][M]);
int a[N][M];
printf("请输入a[N][M]\n");
for (j=0;j<M;j++)
{for (i=0;i<N;i++)
scanf("%d",&a[i][j]);}
printf("Max value is %d,位于第%d名同学,第%d门课程\n",maxvalue(a),b,c);
maxvalue(a);
averageN(a);
averageM(a);
return 0;
}
int maxvalue(int array[N][M])
{
int i,j,max;
max=array[0][0];
for(j=0;j<M;j++)
{

for(i=0;i<N;i++)

s=0;
s=s+array[i][j];
if (array[i][j]>max)
{max=array[i][j];
b=i+1;c=j+1;}
}
return(max);
}
int averageN(int array[][M])
{int i,j;

for(j=0;j<M;j++,printf("第%d门课程的平均分是%f\n",j,s/10),s=0)


{for(i=0;i<N;i++)

s=s+array[i][j];
} }
int averageM(int array[][M])
{int i,j;

for(i=0;i<N;i++,printf("第%d名同学的平均分是%f\n",i,m/5),m=0)


{for(j=0;j<M;j++)

m=m+array[i][j];
} }
...全文
324 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ly532896999 2011-11-20
  • 打赏
  • 举报
回复
编译习惯风格有待提高
yinyinhenzuotong 2011-11-20
  • 打赏
  • 举报
回复
不好意思,第一次发代码,我给你再发一次。

#include <stdio.h>
#define N 10
#define M 5
int i,j,max=0;
int tongxue=0,kecheng=0;
int *b=&tongxue,*c=&kecheng;

int a[N][M];
float s=0,m=0;

int main()
{
void averageN(int array[][M]);
void averageM(int array[][M]);
int maxvalue(int array[][M]);

printf("请输入a[N][M]\n");
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
{
scanf("%d",&a[i][j]);
}
}
max=maxvalue(a);
printf("Max value is %d,位于第%d名同学,第%d门课程\n",max,*b,*c);
averageN(a);
averageM(a);

return 0;
}

int maxvalue(int array[N][M])
{

max=array[0][0];
for(i=0;i<N;i++)
{

for(j=0;j<M;j++)
{
if(array[i][j]>max)
{
max=array[i][j];
*b=j+1;
*c=i+1;
}
}
}
return max;
}

void averageN(int array[][M])
{
int i,j;
for(i=0;i<N;i++)
{
s=0;
for(j=0;j<M;j++)
{
s=s+array[i][j];
if(j==M-1)
{
printf("第%d门课程的平均分是%f\n",i,s/M);
}
}
}

}

void averageM(int array[][M])
{
int i,j;
for(j=0;j<M;j++)
{
m=0;
for(i=0;i<N;i++)
{
m=m+array[i][j];
if(i==N-1)
{
printf("第%d名同学的平均分是%f\n",j,m/N);
}
}
}
}
yinyinhenzuotong 2011-11-20
  • 打赏
  • 举报
回复
[code=C/C++][#include <stdio.h>
#define N 10
#define M 5
int i,j,max=0;
int tongxue=0,kecheng=0;
int *b=&tongxue,*c=&kecheng;

int a[N][M];
float s=0,m=0;

int main()
{
void averageN(int array[][M]);
void averageM(int array[][M]);
int maxvalue(int array[][M]);

printf("请输入a[N][M]\n");
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
{
scanf("%d",&a[i][j]);
}
}
max=maxvalue(a);
printf("Max value is %d,位于第%d名同学,第%d门课程\n",max,*b,*c);
averageN(a);
averageM(a);

return 0;
}

int maxvalue(int array[N][M])
{

max=array[0][0];
for(i=0;i<N;i++)
{

for(j=0;j<M;j++)
{
if(array[i][j]>max)
{
max=array[i][j];
*b=j+1;
*c=i+1;
}
}
}
return max;
}

void averageN(int array[][M])
{
int i,j;
for(i=0;i<N;i++)
{
s=0;
for(j=0;j<M;j++)
{
s=s+array[i][j];
if(j==M-1)
{
printf("第%d门课程的平均分是%f\n",i,s/M);
}
}
}

}

void averageM(int array[][M])
{
int i,j;
for(j=0;j<M;j++)
{
m=0;
for(i=0;i<N;i++)
{
m=m+array[i][j];
if(i==N-1)
{
printf("第%d名同学的平均分是%f\n",j,m/N);
}
}
}
}]
yinyinhenzuotong 2011-11-20
  • 打赏
  • 举报
回复
我给你重新写了一遍,看来以后我也要多写代码,有点生疏了。


#include <stdio.h>
#define N 10
#define M 5
int i,j,max=0;
int tongxue=0,kecheng=0;
int *b=&tongxue,*c=&kecheng;

int a[N][M];
float s=0,m=0;

int main()
{
void averageN(int array[][M]);
void averageM(int array[][M]);
int maxvalue(int array[][M]);

printf("请输入a[N][M]\n");
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
{
scanf("%d",&a[i][j]);
}
}
max=maxvalue(a);
printf("Max value is %d,位于第%d名同学,第%d门课程\n",max,*b,*c);
averageN(a);
averageM(a);

return 0;
}

int maxvalue(int array[N][M])
{

max=array[0][0];
for(i=0;i<N;i++)
{

for(j=0;j<M;j++)
{
if(array[i][j]>max)
{
max=array[i][j];
*b=j+1;
*c=i+1;
}
}
}
return max;
}

void averageN(int array[][M])
{
int i,j;
for(i=0;i<N;i++)
{
s=0;
for(j=0;j<M;j++)
{
s=s+array[i][j];
if(j==M-1)
{
printf("第%d门课程的平均分是%f\n",i,s/M);
}
}
}

}

void averageM(int array[][M])
{
int i,j;
for(j=0;j<M;j++)
{
m=0;
for(i=0;i<N;i++)
{
m=m+array[i][j];
if(i==N-1)
{
printf("第%d名同学的平均分是%f\n",j,m/N);
}
}
}
}
pathuang68 2011-11-20
  • 打赏
  • 举报
回复
很多小问题,包括风格方面的问题 :) 哥就不一一列举了,你自己对照下面的代码(可以运行滴)看吧(风格方面的问题,没有改动)

#include <stdio.h>

#define N 10
#define M 5
int i, j, a, b, c;
float s = 0, m = 0;

int main()
{
int maxvalue(int array[][M]);
/*int*/void averageN (int array[][M]);
/*int*/void averageM (int array[][M]);
int a[N][M];
printf("请输入a[N][M]\n");
for (j=0;j<M;j++)
{
for (i=0;i<N;i++)
scanf("%d",&a[i][j]);
}
/*printf("Max value is %d,位于第%d名同学,第%d门课程\n",maxvalue(a),b,c);
这句话应该移动到maxvalue(a)之后,因为b和c是在maxvalue中赋值的,否则b和c总是0*/
maxvalue(a);
printf("Max value is %d,位于第%d名同学,第%d门课程\n",maxvalue(a),b,c);
averageN(a);
averageM(a);
return 0;
}

int maxvalue(int array[N][M])
{
int i,j,max;
max=array[0][0];
for(j=0;j<M;j++)
{
for(i=0;i<N;i++)
{/* 这里缺少{ */
s=0;
s = s + array[i][j];
if (array[i][j] > max)
{
max = array[i][j];
b = i + 1; c = j + 1;
}
}/* 这里缺少} */
}
return(max);
}

/*int*/ void averageN(int array[][M])
{
int i,j;
for(j=0;j<M;j++,printf("第%d门课程的平均分是%f\n",j,s/10),s=0)
{
for(i=0;i<N;i++)
s=s+array[i][j];
}
}

/*int*/void averageM(int array[][M])
{
int i,j;
for(i = 0; i < N; i++, printf("第%d名同学的平均分是%f\n", i, m / 5), m=0)
{
for(j=0;j<M;j++)
m=m+array[i][j];
}
}
QQMVP_30 2011-11-20
  • 打赏
  • 举报
回复
int averageN(int array[][M])
int averageM(int array[][M])
这两个函数是int型 所以要有返回值,所以在最后加上return 0;就可以执行了。
a136106345 2011-11-20
  • 打赏
  • 举报
回复
求纠正

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧