请教一个问题,为什么我这个代码在输入到身高之后,直接跳到姓名输入了呢?
#include<stdio.h>
#include<stdlib.h> //因为要用strcpy函数,所以要包含头文件stdlib.h
struct student //定义一个结构体
{
char name[20]; //姓名
int age; //年龄
char sex; //性别
int height; //身高
};
main()
{
struct student stu[50]; //定义一个结构体,表示有50个学生。
int i=0; //输入学生的计数
int j; //输出的计数
char s; //用户输入数据
char name[20]; //姓名
while(1)
{
printf("Enter a student?\n?Y/N:");//提示用户输入选择
scanf("%c",&s); //用户输入一个字符
if(s=='N'||s=='n') //输入N或者n则终端循环
{
break; //中止当前循环
}
if(s!='n'&&s!='N'&&s!='y'&&s!='Y') //如果不是N、n、y、Y这几个字母则进入下一个循环
{
printf("error.\n"); //输出提示
continue; //进入下一个循环
}
printf("enter age:\n"); //提示输入年龄
scanf("%d",&stu[i].age); //输入年龄
printf("enter height:\n"); //提示输入身高
scanf("%d",&stu[i].height); //输入身高
printf("enter sex:\n"); //提示输入性别
scanf("%c",&stu[i].sex); //输入性别
printf("enter name:\n"); //提示输入姓名
scanf("%s",name); //输入姓名
strcpy(stu[i].name,name); //将字符串复制到姓名
i++; //计数器自加
}
for(j=0;j<i;j++)
{
printf("Student[%d]\n\t",j); //提示第几个学生
printf("Name :%s \n\t",stu[j].name); //输出姓名
printf("Age :%d \n\t",stu[j].age); //输出年龄
printf("Sex :%c \n\t",stu[j].sex); //输出性别
printf("Height :%d \n\t",stu[j].height);//输出身高
}
}