//为什么输出时候性别输出的时候,会出现第三个打印输出显示不出来?
#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;
}
- 1 回答
- 0 关注
- 1145 浏览
添加回答
举报
0/150
提交
取消