满意答案
lexfong
2013.05.17
采纳率:52% 等级:12
已帮助:21917人
你先看下我写的程序:
#include
int main()
{
float a[5][3],sum[5]={0},ave[5];
int i,j;
for(i=0;i<5;i++)
{
printf("请输入第%d位同学三门功课的分数:",i+1);
for(j=0;j<3;j++)
{
scanf("%f",&a[i][j]);
}
}
for(i=0;i<5;i++)
{
for(j=0;j<3;j++)
{
sum[i]=sum[i]+a[i][j];
}
printf("第%d位同学的总分为:%f\n",i+1,sum[i]);
ave[i]=sum[i]/(float) 3.0;
printf("第%d位同学的平均分为:%f\n",i+1,ave[i]);
}
return 0;
}
以后你学了函数的话,可以把求和以及求平均分在函数中实现。追问: 我的程序是总分和平均分没赋初值导致错误吗,编译时候没错,但是与库函数连接转化成可执行文件的过程中有一个错误
追答:总分没有赋值是有问题的,因为执行 sum[i]=sum[i]+a[i][j]的时候,是将sum[i]+a[i][j]的值赋值给sum[i],当你没有给sum[i]赋值的时候,sum[i]的值不可预料的.我现在这里没有编译器,等我回学校以后再给你明确的答复.
下面针对你的程序说一下:
a[i][3]+=a[i][j];
这个语句是有问题的:a[i][3]的值不可预料的,应该事先赋值,在前面通过scanf语句赋值的时候并未给a[i][3]赋值,注意数组下标。
a[5][j]+=a[i][j];
也存在同样的错误。额 说实话你的程序要改的地方太多了,我也只是大概明白你的思路,有空再交流吧。
00分享举报