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;
} 展开
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;
} 展开
5个回答
展开全部
在定义时定义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;
}
#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;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
细节没注意。没关系,慢慢来。
#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;//最后要算平均值
}
#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;//最后要算平均值
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a[10][5]还是定义成全局变量,不然在每个函数里定义没意义,要不就在函数里定义一个二级指针把数组首地址传过去也行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把float a[10][5];掉到#include<stdio.h>后面 就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
averstu[i+1]=sum1/5;
数组越界了
数组越界了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询