开发者社区> 问答> 正文

请问我这段代码哪里错了?

题目是输入3个学生的4科成绩,输出每个人的平均成绩和所有成绩中的最高和最低值:

#include 
int max(int c[][4]);
int min(int b[][4]);
void average(int e[][4]);
main()
{
int a[3][4];
int i=0,j;
printf("分别输入3个人的4门成绩:\n");
for(i=0;i {
printf("第%d个人\n",i+1);
for(j=0;j {
scanf("%d",&a[i][j]);
}
printf("\n");
}
int mi,ma;
mi=min(a);
ma=max(a);
printf("最高成绩为%d\n",max);
printf("最低成绩为%d\n",min);
average(a);
}
int min(int b[][4])
{
int *q=b[0];
int j,k=0;
for(j=1;j {
if(*(q+k)>(q+j)) k=j;
}
return *(q+k);
}
int max(int c[][4])
{
int *q=c[0];
int j,k=0;
for(k=0;j<12;j++)
{
if((q+k)>(q+j)) k=j;
}
return *(q+k);
}
void average(int e[][4])
{
float j,m,n,h,q,f,i;
int *p=e[0],k=0,sum1=0,sum2=0,sum3=0;
for(i=0;k<12;k++)
{
if(k<4)
{
sum1=sum1+((p+i));
i++;
}
else
if(k<8)
{
sum2=sum2+(*(p+i));
i++;
}
else
{
sum3=sum3+(*(p+i));
i++;
}
}
j=(float)sum1,m=(float)sum2,n=(float)sum3;
h=j/3.0,q=m/3.0,f=n/3.0;
printf("第一个学生平均成绩:%5.2f,第二个学生平均成绩:%5.2f,第三个学生平均成绩:%5.2f\n",h,q,f);
}

展开
收起
a123456678 2016-03-20 10:07:34 1814 0
1 条回答
写回答
取消 提交回答
  • for(j=1;j {
    if(*(q+k)>(q+j)) k=j;
    }
    这种地方,只判断了一种情况,你应该分大于和小于两种情况,而且每循环一次,应该k和j的值也应该+1啊

    2019-07-17 19:08:46
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
《0代码搭应用》 立即下载
不止代码 立即下载
低代码开发师(初级)实战教程 立即下载