输入时性别和电话的输入直接跳过了
输出时表中没有信息
我改了几遍代码,实在是不知道错在哪里,希望有人指点指点。
代码如下:#include <stdio.h>
//声明一个结构体类型
struct stu{
long int stnum;//学生学号
char stname[20];//学生姓名
int age;//年龄
float weight;//体重
char sex;//f女,m男
long int phone;//电话
};
int main(int argc,char *argv[])
{
//建立表
struct stu p[6];
int i;
//输入学生的信息
for(i=0;i<7;i++){
printf("请输入第%d位同学的信息",i+1);
printf("\n姓名:");
gets(p[i].stname);
printf("\n学号:");
scanf("%ld",&p[i].stnum);
printf("\n性别:");
p[i].sex=getchar();
printf("\n年龄:");
scanf("%d",&p[i].age);
printf("\n体重:");
scanf("%.lf",&p[i].weight);
printf("\nTEL:");
scanf("%ld",&p[i].phone);
};
//输出信息
printf("\n学生信息如下:");
printf("\n-\n");
printf("序号\t|\t姓名\t|\t学号\t|\t性别\t|\t年龄\t|\t体重\t|\tTEL\t|\n");
printf("-\n");
for(i=0;i<7;i++){
if(p[i].sex=='f')
printf("i\t|\t%s\t|\t%ld\t|\t女\t|\t%d\t|\t%.lf\t|\t%ld\t|\n",p[i].stname,p[i].stnum,p[i].age,p[i].weight,p[i].phone);
if(p[i].sex=='m')
printf("i\t|\t%s\t|\t%ld\t|\t女\t|\t%d\t|\t%.lf\t|\t%ld\t|\n",p[i].stname,p[i].stnum,p[i].age,p[i].weight,p[i].phone);
printf("-\n");
};
};
由于不能重复输入-,所以我剩下了一个