#include
int main()
{
float a[5][5];int i,j,k;
for(i=0;i<5;i++)
{
printf("studet%5d:",i+1);
for(j=0;j<3;j++)
scanf("%f",&a[i][j]);
}
for(i=0;i<5;i++)
{
a[i][3]=0;
for(j=0;j<3;j++)
{
a[i][3]+=a[i][j];
a[i][4]=a[i][3]/3;
k=0;
if (a[i][4]<60)
k++;
}
}
for(i=0;i<5;i++)
{
printf("student%d:%f%f",i+1,a[i][3],a[i][4]);//这里
printf("%d",k);
}
}
# include
void main()
{
double a[5][5];//////////
int i,j,k;
for(i=0; i<5; i++)
{
printf("请输入student%d的三科成绩:\n",i+1);
for(j=0; j<3; j++)
scanf("%lf",&a[i][j]);
}
k = 0;///////////////
for(i=0;i<5;i++)
{
a[i][3] = 0;
for(j=0; j<3; j++)
{
a[i][3] += a[i][j];
}
a[i][4] = a[i][3]/3;//////////////
if (a[i][4] < 60)////////////////
k++;////////////////////////////
}
for(i=0; i<5; i++)
{
printf("student%d:总分:%5lf平均分:%5lf\n",i+1,a[i][3],a[i][4]);
}
printf("不及格人数%d\n",k);//////////
}
测试结果:
studet 1:
100
100
100
studet 2:
98
98
98
studet 3:
56
56
56
studet 4:
21
24
25
studet 5:
32
58
59
student1: 300.000000 100.000000
3student2: 294.000000 98.000000
3student3: 168.000000 56.000000
3student4: 70.000000 23.333334
3student5: 149.000000 49.666668
3请按任意键继续. . .
正确代码:
#include
#include "stdlib.h"
main()
{
float a[5][5];int i,j,k=0;
for(i=0;i<5;i++)
{
printf("studet%5d:\n",i+1);
for(j=0;j<3;j++)
scanf("%f",&a[i][j]);
}
for(i=0;i<5;i++)
{
a[i][3]=0;
for(j=0;j<3;j++)
{
a[i][3]+=a[i][j];
}
a[i][4]=a[i][3]/3.0;
if (a[i][4]<60)
k++;
}
for(i=0;i<5;i++)
{
printf("student%d: %f %f\n",i+1,a[i][3],a[i][4]);
printf("%d",k);
}
system("pause");
}
错误分析:
1、打印的分数和平均分是小数。所以应该%f,而不是%d
2、for(j=0;j<3;j++)
{
a[i][3]+=a[i][j];
}
先求出平均分,然后在用三门课的总分除以3求平均分。
而且k是记录5个学生有几个不及格的。所以初始化的时候k=0就可以了。发现一个挂科的,k++就可以了
其它的OK了
楼主好运!
本上没有C++ 明天帮你看