题目是输入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);
}
for(j=1;j {
if(*(q+k)>(q+j)) k=j;
}
这种地方,只判断了一种情况,你应该分大于和小于两种情况,而且每循环一次,应该k和j的值也应该+1啊
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。