求救,大佬快帮我看看吧

 

修改如下,供参考:

#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;
}