C语言 题一道 急求高手 改错

#include<stdio.h>voidaver1(void){inti,j;floatsum1=0,s1=0,s2=0,var,averstu[10];for(i=0... #include<stdio.h>
void aver1(void)
{int i,j;
float sum1=0,s1=0,s2=0,var,averstu[10];
for(i=0;i<10;i++)
for(j=0;j<5;j++)
{sum1+=a[i][j];
averstu[i+1]=sum1/5;
printf("aver_stu[i+1]=%f/n",averstu[i+1]);
s1=s1+averstu[i]*averstu[i];
s2=s2+averstu[i];
};
var=s1/10-(s2*s2)/(10*10);
printf("variance=%f\n",var);
}
void aver2(void)
{int i,j;
float sum2=0,avercour[5];
for(j=0;j<5;j++)
for(i=0;i<10;i++)
{sum2=sum2+a[i][j];
avercour[j+1]=sum2/10;
printf("aver_cour[j+1]=%f/n",avercour[j+1]);
}
}
void num(void)
{int i,j,high=0,n=0,c=0;
for(i=0;i<10;i++)
for(j=0;j<5;j++)
if(high<a[i][j])
{high=a[i][j];
n=i+1;
c=j+1;
}
printf("the high score student's number is%d,course number is %d\n",n,c);
}
int main()
{int i,j;
float a[10][5];
for(i=0;i<10;i++)
{printf("\ninput score of student%d:\n",i+1);
for (j=0;j<5;j++)
scanf("%f",&a[i][j]);
}
aver1();
aver2();
num();
return 0;
}
展开
 我来答
n474168
推荐于2016-09-25
知道答主
回答量:13
采纳率:0%
帮助的人:7.6万
展开全部
在定义时定义a[10][5]就好了,下面就对了
#include<stdio.h>
void aver1(void)
{int i,j,a[10][5];
float sum1=0,s1=0,s2=0,var,averstu[10];
for(i=0;i<10;i++)
for(j=0;j<5;j++)
{sum1+=a[i][j];
averstu[i+1]=sum1/5;
printf("aver_stu[i+1]=%f/n",averstu[i+1]);
s1=s1+averstu[i]*averstu[i];
s2=s2+averstu[i];
};
var=s1/10-(s2*s2)/(10*10);
printf("variance=%f\n",var);
}
void aver2(void)
{int i,j,a[10][5];
float sum2=0,avercour[5];
for(j=0;j<5;j++)
for(i=0;i<10;i++)
{sum2=sum2+a[i][j];
avercour[j+1]=sum2/10;
printf("aver_cour[j+1]=%f/n",avercour[j+1]);
}
}
void num(void)
{int i,j,high=0,n=0,c=0,a[10][5];
for(i=0;i<10;i++)
for(j=0;j<5;j++)
if(high<a[i][j])
{high=a[i][j];
n=i+1;
c=j+1;
}
printf("the high score student's number is%d,course number is %d\n",n,c);
}
int main()
{int i,j;
float a[10][5];
for(i=0;i<10;i++)
{printf("\ninput score of student%d:\n",i+1);
for (j=0;j<5;j++)
scanf("%f",&a[i][j]);
}
aver1();
aver2();
num();
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
eabupil
2011-05-18 · TA获得超过553个赞
知道小有建树答主
回答量:756
采纳率:0%
帮助的人:386万
展开全部
细节没注意。没关系,慢慢来。
#include<stdio.h>
void main()
{
int n=0;
float a,s;//你s没定义
float max=0.0,sum=0.0;//你sum没赋值
scanf("%f",&s);
while(s>=0)
{ if(s>max) max=s;
sum=sum+s;
n=n+1;
scanf("%f",&s);//在while内部要重新输入s值,不然s始终都等于你第一次输入的值
}
a=sum/n;//最后要算平均值

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qq597399721
2011-05-18 · 超过12用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:43.4万
展开全部
a[10][5]还是定义成全局变量,不然在每个函数里定义没意义,要不就在函数里定义一个二级指针把数组首地址传过去也行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
827926972
2011-05-17 · TA获得超过105个赞
知道答主
回答量:110
采纳率:0%
帮助的人:63.7万
展开全部
把float a[10][5];掉到#include<stdio.h>后面 就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
aki__hoshino
2011-05-17 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:168
采纳率:100%
帮助的人:112万
展开全部
averstu[i+1]=sum1/5;
数组越界了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式