请高手帮我看看,下面这个程序哪里有问题,我是初学者,谢谢大家。最好帮我解释下为什么错了。

2024-11-30 01:14:30
推荐回答(4个)
回答1:

你的流程是错误的,可以参考一下下面的:
void main()
{
int i,j,sum=0,average,v[3];
int a[5][3]={{80,75,92},{61,65,71},{59,63,70},{85,87,90},{76,77,85}};
for (i=0;i<3;i++)
{
for(j=0;j<5;j++)
{
sum=sum +a[j][i];
}
v[i]=sum/5;
sum = 0;
}
average=(v[0]+v[1]+v[2])/3; }
printf("math:%d\nc languag :%d\nfoxpro:%d\n",v[0],v[1],v[2]);
printf("total:%d\n",average);
}

回答2:

#include
void main()
{
int i,j,sum=0,average,v[3];
int a[5][3]={{80,75,92},{61,65,71},{59,63,70},{85,87,90},{76,77,85}};
for (i=0;i<3;i++)
{
sum=0; //初始化,应该放这里
for(j=0;j<5;j++)
sum+=a[j][i]; //这里累加
v[i]=sum/5;
average=(v[0]+v[1]+v[2])/3;
}
printf("math:%d\nc languag :%d\nfoxpro:%d\n",v[0],v[1],v[2]);
printf("total:%d\n",average);
}

回答3:

#include "stdio.h"

void main()
{
int sum=0,average,v[3];
int a[5][3]={{80,75,92},{61,65,71},{59,63,70},{85,87,90},{76,77,85}};

for (int i=0;i<3;i++)
{
for(int j=0;j<5;j++)
{
sum += a[j][i];
v[i] = sum/5;
}
sum=0;
average=(v[0]+v[1]+v[2])/3;
}
printf(" math:%d\n clanguag :%d\n foxpro:%d\n",v[0],v[1],v[2]);
printf(" total:%d\n",average);
}

回答4:

你的循环体内的加法也没做,怎么算平均分,而且类型是int你做了除法,结果会强制转换成int型,你把初始值改成double型吧。