求最大值

a136106345 2011-11-20 11:46:02
本程序计算最大值结果有误,求纠正
#include <stdio.h>
#define N 10
#define M 5
int i,j,a;
float s=0,p;
int main()
{int maxvalue(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),i,j);
return 0;
}
int maxvalue(int array[N][M])
{int i,j,max;
max=array[0][0];
{for(j=0;j<M;j++,printf("第%d门课程的平均分是%f\n",i,s/10),s=0)


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

s=s+array[i][j];
if (array[i][j]>max)
max=array[i][j];}
return(max);
}}
...全文
86 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
自易而望 2011-11-20
  • 打赏
  • 举报
回复
#include <stdio.h>
#define N 10
#define M 5
int i,j,a;
float s=0,p;
int main()
{
int maxvalue(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),i,j);
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];
}
return(max);
}


你的程序我改了下,我做到了你的要求,只是你这个程序输入时要好久,有点麻烦,
a136106345 2011-11-20
  • 打赏
  • 举报
回复
不行啊,return 放外面还是错
goldbeef 2011-11-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hnuqinhuan 的回复:]

C/C++ code

#include <stdio.h>
#define N 10
#define M 5
int maxvalue(int array[][M],int & , int &);
int main()
{
int a[N][M];
int i = 0;
int j = 0;
int maxi, maxj;
pr……
[/Quote]++
尘缘udbwcso 2011-11-20
  • 打赏
  • 举报
回复
用结构体
無_1024 2011-11-20
  • 打赏
  • 举报
回复

#include <stdio.h>
#define N 10
#define M 5
int maxvalue(int array[][M],int & , int &);
int main()
{
int a[N][M];
int i = 0;
int j = 0;
int maxi, maxj;
printf("请输入a[N][M]\n");
for (j=0;j<M;j++)
{
for (i=0;i<N;i++)
scanf("%d",&a[i][j]);
}
int max = maxvalue(a,maxi,maxj);
printf("Max value is %d,位于第%d名同学,第%d门课程\n",max,maxi,maxj);
return 0;
}
int maxvalue(int array[N][M],int &maxi, int & maxj)
{
int i,j,max;
double sum = 0.0;
max=array[0][0];
for(j=0;j<M;j++)
{
sum = 0;
for(i=0;i<N;i++)
{
sum = sum + array[i][j];
if (array[i][j]>max)
{
maxi = i;
maxj = j;
max=array[i][j];
}
}
printf("第%d门课程的平均分是%f\n",j,sum/10);
}
return(max);
}

w28050 2011-11-20
  • 打赏
  • 举报
回复
return(max);放错地方了,函数中第一个循环只能循环一次就返回了,建议楼主单步调试程序,查看程序的实际执行过程。
a136106345 2011-11-20
  • 打赏
  • 举报
回复
真正的代码在这,还加了学生的平均分,忽然变的自恋了许多

#include <stdio.h>
#define N 10
#define M 5
int i,j,a;
float s=0,p;
int main()
{
int maxvalue(int array[][M]);
int averageN (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),i,j);
maxvalue(a);
averageN(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];
}
return(max);
}
int averageN(int array[][M])
{int i,j;

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


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

s=s+array[i][j];
} }
a136106345 2011-11-20
  • 打赏
  • 举报
回复
坑爹啊,你给我改的我平均分没了,还我的分!

69,369

社区成员

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

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