但是当我运行输入信息的时候,显示到性别后就结束运行了,怎么回事
2条回答 默认 最新
- a5156520 2023-01-08 10:44关注
应该是因为读取字符使用了%s而导致读取数据出错了,把性别字段改为字符数组即可,其他字段也可以改为字符数组,或者可以把对应的scanf里面的%s改为%c(但需要在读取字符后把输入的换行符等多余字符读走),以对应相应字段为字符数据类型,下面的例子把字符字段改为了字符数组,修改如下:
#include <stdio.h> struct student{ int num,age; char name[10000]; char jg[20]; char sex[10]; char zy[20]; char bj[20]; char xb[20]; }; int main(void){ int n,i; printf("请输入操作学生人数:"); scanf("%d",&n); struct student stu[n]; printf("对应顺序输入一下信息即可\n"); for(i=0;i<n;i++){ printf("姓名:"); scanf("%s",stu[i].name); printf("学号:"); scanf("%d",&stu[i].num); printf("性别:"); scanf("%s",stu[i].sex); printf("年龄:"); scanf("%d",&stu[i].age); printf("籍贯:"); scanf("%s",stu[i].jg); printf("系别:"); scanf("%s",stu[i].xb); printf("专业班级:"); scanf("%s",stu[i].bj); printf("\n"); } printf("输入的信息如下:\n"); for(i=0;i<n;i++){ printf("姓名:"); printf("%s",stu[i].name); printf(",学号:"); printf("%d",stu[i].num); printf(",性别:"); printf("%s",stu[i].sex); printf(",年龄:"); printf("%d",stu[i].age); printf(",籍贯:"); printf("%s",stu[i].jg); printf(",系别:"); printf("%s",stu[i].xb); printf(",专业班级:"); printf("%s\n",stu[i].bj); } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 2无用
悬赏问题
- ¥15 关于大棚监测的pcb板设计
- ¥20 sim800c模块 at指令及平台
- ¥15 stm32开发clion时遇到的编译问题
- ¥15 lna设计 源简并电感型共源放大器
- ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
- ¥15 Vue3地图和异步函数使用
- ¥15 C++ yoloV5改写遇到的问题
- ¥20 win11修改中文用户名路径
- ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
- ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计