修改如下,供参考:
#include<stdio.h>
#include<string.h>
int main()
{
float a[3][3],h=0,k;
int i,j;
char name[20]={0};
for(i=0;i<3;i++)
{
printf("请输入第%d个同学的3门课程分数:\n",i+1);
for(j=0;j<3;j++)
{
scanf("%f",&a[i][j]);
}
}
printf("姓名\t语文\t数学\t英语\t总分\t平均分\n");
for(i=0;i<3;i++)
{
switch (i){
case 0:strcpy(name,"张三");break;
case 1:strcpy(name,"李四");break;
case 2:strcpy(name,"王五");break;
default:strcpy(name," ");break;
}
printf("%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",name,a[i][0],a[i][1],a[i][2],
(a[i][0]+a[i][1]+a[i][2]),(a[i][0]+a[i][1]+a[i][2])/3);
}
getchar();
getchar();
return 0;
}
啥也看不见
问题我在代码中注释了,代码修改如下:如有帮助,请采纳一下,谢谢。
#include<stdio.h>
int main()
{
float a[3][3],h=0,k;
int i,j;
for(i=0;i<3;i++)
{
printf("请输入第%d个同学的分数:\n",i+1);
for(j=0;j<3;j++)
{
scanf("%f",&a[i][j]);
}
}
/*
for(i=0;i<3;i++) //这么写是计算所有人的所有成绩的和
{
for(j=0;j<3;j++)
{
h=h+a[i][j];
}
}
k=(a[i][0]+a[i][1]+a[i][2])/3; //a就3行3列,i已经等于3了,在这越界了
*/
printf("姓名\t语文\t数学\t英语\t总分\t平均分\n");
for(i=0;i<3;i++)
{
h = a[i][0]+a[i][1]+a[i][2];
k = h/3.0;
if(i==0)//不是=
{
printf("张三\t%.2f\t%.f\t%.2f\t%.2f\n",a[i][0],a[i][1],a[i][2],h,k); //&不需要
}else if(i==1) //不是=
{
printf("李四\t%.2f\t%.f\t%.2f\t%.2f\n",a[i][0],a[i][1],a[i][2],h,k);
} else if(i==2) //不是=
{
printf("王五\t%.2f\t%.f\t%.2f\t%.2f\n",a[i][0],a[i][1],a[i][2],h,k);
}
}
getchar();
getchar();
return 0;
}