一个小问题关于字符型数组的输出请教一下

//为什么输出时候性别输出的时候,会出现第三个打印输出显示不出来?
#include"stdio.h" 
#define M 6
#define N 4
 	typedef struct{
 		char num[11];
 		char name[10];
 		char sex[3];
 		float score[M];
 		float total;
	 }student;
 int main()
 {

	 student sw[N]; 
	 int i,j;
	 printf("输入学生的学号(依次输入)\n");
	 for(i=0;i<3;i++)
	 {
	 	gets(sw[i].num);
	 }
	 printf("学号输入完成!请输入姓名\n");
	 for(i=0;i<3;i++)
	 {
	 	gets(sw[i].name);
	 }
	 printf("姓名输入完成!请输入性别(F or M)\n");
	 for(i=0;i<3;i++)
	 {
	    gets(sw[i].sex);
	 }
	 printf("%s,%s,%s\n",sw[0].sex,sw[1].sex,sw[2].sex);
	 printf("性别输入完成!请分别输入分数\n");
	 for(i=0;i<3;i++)
	 {
	 	for(j=0;j<=5;j++)
	 	{
	 		scanf("%f",&sw[i].score[j]);
		}
		printf("第%d名学生的成绩全部输入完成,NEXT\n",i+1);
	 }
	 printf("三名学生的全部信息输入完成!\n");
	 for(i=0;i<3;i++)
	 {
	 	for(j=0;j<6;j++)
	 	{
	 		sw[i].total+=sw[i].score[j];
		}
	 }
	 for(i=0;i<N-2;i++)
	 {
	 	for(j=0;j<N-2-i;j++)
	 	{
	 		if(sw[j].total<sw[j+1].total)
	 		{
	 			sw[3]=sw[j];
	 			sw[j]=sw[j+1];
	 			sw[j+1]=sw[3];
			}
		}
	 }
	 printf("\n\t\t|--------------------------------------");
	 printf("-----------------------------------------|\n");
	 printf("\t\t|名次|  学  号  | 姓  名 |性 别| c 程 ");
	 printf("| 体育 |英 语 |高  数|近代史| 导论 | 总分 |\n");
	 for(i=0;i<3;i++)
	 {
	 	printf("\t\t|%4d|%10s|%7s ",i+1,sw[i].num,sw[i].name);//名词,学号 ,姓名 
	 	if(sw[i].sex[0]=='W'||sw[i].sex[0]=='w')
		 {printf("| 男  ");} //性别 
	 	else if(sw[i].sex[0]=='F'||sw[i].sex[0]=='f')
		 {printf("| 女  ");}//性别 
		 else 
		 {printf("|     ");} //性别  
		 
	 	for(j=0;j<6;j++)
	 	{
	 		printf("|%6.1f",sw[i].score[j]);//各科成绩 
		}
		printf("|%6.1f|\n",sw[i].total);//总分 
	 printf("\t\t|--------------------------------------");
	 printf("-----------------------------------------|\n");
	 }
	 return 0;
 }


慕粉1600176492
浏览 1148回答 1
1回答

慕粉1600176492

//问题已经解决
打开App,查看更多内容
随时随地看视频慕课网APP