#include<stdio.h>
#include<string.h>
int main()
{
int a,b,c,d,e[100][100],f,g,h,i;
float j[100],k=0;
scanf("%d%d",&a,&b);
for(c=0;c<a;c++)
{
printf(" %d ",b);
f=0;
for(d=0;d<b;d++)
{
scanf("%d",&e[c][d]);
f=f+e[c][d];
}
g=e[c][0];
h=e[c][0];
for(i=0;i<b;i++)
{
if(g>e[c][i])
g=e[c][i];
if(h<e[c][i])
h=e[c][i];
}
j[c]=f/float(b);
k=k+j[c]/c;
printf("第%d位学生的总分是%d平均分是%f最高分是%d,最低分时%d",c+1,f,j[c],h,g);
}
}
一个计算学生数量和各科成绩平均分和总平均分的程序,但是总平均分k有错误不知道为什么
代码修改如下,这个代码我运行了
#include
int main()
{
int a,b,c,d,e[100][100],f,g,h,i;
float j[100];
printf("请输入学生人数和科目数:");
scanf("%d%d",&a,&b);
for(c=0;c<a;c++)
{
printf(" %d \n",b);
f=0;
for(d=0;d<b;d++)
{
printf("请输入学生%d科目成绩:",b);
scanf("%d",&e[c][d]);
f=f+e[c][d];
}
g=e[c][0];
h=e[c][0];
for(i=0;i<b;i++)
{
if(g>e[c][i])
g=e[c][i];
if(h<e[c][i])
h=e[c][i];
}
j[c]=(float)f/b;
//k=k+j[c]/c;
printf("第%d位学生的总分是%d平均分是%f最高分是%d,最低分时%d",c+1,f,j[c],h,g);
}
return 0;
}
#include
const int n = 10;
int main()
{
int i, sum = 0, ave, count = 0;
int a[n];
printf("请输入%d个正整数:\n", n);
for (i = 0; i < n; i++)
scanf("%d", &a[i]);
for (i = 0; i < n; i++)
sum += a[i];
ave = sum / n;
for (i = 0; i < n; i++)
{
if (a[i] > ave)
count++;
}
printf("大于平均分的人数是 %d\n", count);
printf("平均分是 %d\n", ave);
return 0;
}
可以用结构体来储存一下数据,你这个结构有点乱
大哥,结构太混乱了,能不能把标识符清晰一些。
题外话,代码没缩进很难看的
言归正传,这个代码有个很明显的错误
k=k+j[c]/c;
当第一次循环的时候c为0,那么运算的时候,0怎么能够用来做分母呢?
不知道我又没有理解你的意思,我将代码改为
#include <stdio.h>
#include <string.h>
int main()
{
int a,b,c,d,e[100][100],f,g,h,i;
float j[100],k=0;
scanf("%d%d",&a,&b);
for(c=0;c<a;c++)
{
printf(" %d ",b);
f=0;
for(d=0;d<b;d++)
{
scanf("%d",&e[c][d]);
f=f+e[c][d];
}
g=e[c][0];
h=e[c][0];
for(i=0;i<b;i++)
{
if(g>e[c][i])
g=e[c][i];
if(h<e[c][i])
h=e[c][i];
}
j[c]=f/(float)(b);
k=k+f;
printf("第%d位学生的总分是%d平均分是%f最高分是%d,最低分时%d\n",c+1,f,j[c],h,g);
printf("总平均分%f\n", k/(c+1));
}
return 0;
}
我也是渣渣,这缩减也没法看,怪CSDN???
这个结构很混乱,主要是如果是c个学生,b门课程的分数还是可以用二维数组的,但是如果只是c个学生的成绩一维数组就可以解决。总体感觉b是个多余的变量