免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3196 | 回复: 19
打印 上一主题 下一主题

[C] 关于结构体数组问题! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-11-15 20:27 |只看该作者 |正序浏览
各位好,我中菜鸟,
在学习C语言中的结构体部分。
struct student
{
   int num;
   char name[20];
   char sex;
   int age;
   char addr[30];
}stu[3];
结构体变量是个数组,
但在常试用scanf输入成员列表里的内容时只输入到name
就不能在往下输入了。
以下图片就是代码内容跟测试时的内容!
各位高手请帮帮我!

论坛徽章:
0
20 [报告]
发表于 2015-11-24 08:54 |只看该作者
话说,编译的时候没有警告吗?

论坛徽章:
1
平安夜徽章
日期:2015-12-26 00:06:30
19 [报告]
发表于 2015-11-23 23:26 |只看该作者
sex已经获取到了值,就是上边name字符串后面你输入的换行符。
代码应该这样:
  p ("Name:");
  s ("%s",str.name);
  fflush(stdin); //清空一下输入缓冲区
  p ("Sex:");
  s ("%c",&str.sex);

论坛徽章:
0
18 [报告]
发表于 2015-11-18 18:05 |只看该作者
回复 16# zsszss0000
#include <stdio.h>
#define p printf
#define s scanf
      struct student
      {
         int num;
         char name[20];
         char sex;
         int age;
         char addr[30];
      }

      main()
      {
       struct student str[3];

        int i = 0;
        for(i=0;i<3;i++)
        {
        p ("Num:");
        s ("%d",&str.num);
       p ("Name:");
      s ("%s",str.name);
      p ("Sex:");
      s ("%c",&str.sex);
      p ("Age:");
      s ("%d",&str.age);
      p ("Addr:");
      s ("%s",&str.addr);
        }
       int j=0;
       for (j=0;j<3;j++)
       {
       printf ("num:%d\nname:%s\nsex:%c\nage:%d\naddr:%s\n",str[j].num,str[j].name,str[j].sex,str[j].age,str[j].addr);
        }
}



这个就是问题代码,在输入完name后,
就成了Sex:Age:连在一起,没办法输入性别!



   

论坛徽章:
36
CU大牛徽章
日期:2013-09-18 15:24:20NBA常规赛纪念章
日期:2015-05-04 22:32:03牛市纪念徽章
日期:2015-07-24 12:48:5515-16赛季CBA联赛之辽宁
日期:2016-03-30 09:26:4715-16赛季CBA联赛之北控
日期:2016-03-30 11:26:2315-16赛季CBA联赛之广夏
日期:2016-05-20 15:46:5715-16赛季CBA联赛之吉林
日期:2016-05-24 11:38:0615-16赛季CBA联赛之青岛
日期:2016-05-30 13:41:3215-16赛季CBA联赛之同曦
日期:2016-06-23 16:41:052015年亚洲杯之巴林
日期:2015-02-03 15:05:04CU大牛徽章
日期:2013-09-18 15:24:52CU十二周年纪念徽章
日期:2013-10-24 15:46:53
17 [报告]
发表于 2015-11-18 09:41 |只看该作者
回复 2# zsszss0000


    两个一样的

求职 : 机器学习
论坛徽章:
79
2015年亚洲杯纪念徽章
日期:2015-05-06 19:18:572015七夕节徽章
日期:2015-08-21 11:06:172015亚冠之阿尔纳斯尔
日期:2015-09-07 09:30:232015亚冠之萨济拖拉机
日期:2015-10-21 08:26:3915-16赛季CBA联赛之浙江
日期:2015-12-30 09:59:1815-16赛季CBA联赛之浙江
日期:2016-01-10 12:35:21技术图书徽章
日期:2016-01-15 11:07:2015-16赛季CBA联赛之新疆
日期:2016-02-24 13:46:0215-16赛季CBA联赛之吉林
日期:2016-06-26 01:07:172015-2016NBA季后赛纪念章
日期:2016-06-28 17:44:45黑曼巴
日期:2016-06-28 17:44:4515-16赛季CBA联赛之浙江
日期:2017-07-18 13:41:54
16 [报告]
发表于 2015-11-18 09:31 |只看该作者
不是 贴图  是贴代码,贴图怎么看啊




回复 15# baicaidaoshi


   

论坛徽章:
0
15 [报告]
发表于 2015-11-18 08:48 来自手机 |只看该作者
我以经帖图了呀!看不到?

求职 : 机器学习
论坛徽章:
79
2015年亚洲杯纪念徽章
日期:2015-05-06 19:18:572015七夕节徽章
日期:2015-08-21 11:06:172015亚冠之阿尔纳斯尔
日期:2015-09-07 09:30:232015亚冠之萨济拖拉机
日期:2015-10-21 08:26:3915-16赛季CBA联赛之浙江
日期:2015-12-30 09:59:1815-16赛季CBA联赛之浙江
日期:2016-01-10 12:35:21技术图书徽章
日期:2016-01-15 11:07:2015-16赛季CBA联赛之新疆
日期:2016-02-24 13:46:0215-16赛季CBA联赛之吉林
日期:2016-06-26 01:07:172015-2016NBA季后赛纪念章
日期:2016-06-28 17:44:45黑曼巴
日期:2016-06-28 17:44:4515-16赛季CBA联赛之浙江
日期:2017-07-18 13:41:54
14 [报告]
发表于 2015-11-17 20:08 |只看该作者
大哥,你贴源代码吧

回复 13# baicaidaoshi


   

论坛徽章:
0
13 [报告]
发表于 2015-11-17 18:35 |只看该作者
zsszss0000 发表于 2015-11-16 23:54
试试这个 应该没有问题
回复 11# baicaidaoshi

现在输入是可以正常了,只是我稍作了一点修改后在输入完name后,sex跟age一起显示,无法输入性别!
怎么会这样我又写错那个里了?

求职 : 机器学习
论坛徽章:
79
2015年亚洲杯纪念徽章
日期:2015-05-06 19:18:572015七夕节徽章
日期:2015-08-21 11:06:172015亚冠之阿尔纳斯尔
日期:2015-09-07 09:30:232015亚冠之萨济拖拉机
日期:2015-10-21 08:26:3915-16赛季CBA联赛之浙江
日期:2015-12-30 09:59:1815-16赛季CBA联赛之浙江
日期:2016-01-10 12:35:21技术图书徽章
日期:2016-01-15 11:07:2015-16赛季CBA联赛之新疆
日期:2016-02-24 13:46:0215-16赛季CBA联赛之吉林
日期:2016-06-26 01:07:172015-2016NBA季后赛纪念章
日期:2016-06-28 17:44:45黑曼巴
日期:2016-06-28 17:44:4515-16赛季CBA联赛之浙江
日期:2017-07-18 13:41:54
12 [报告]
发表于 2015-11-16 23:54 |只看该作者
本帖最后由 zsszss0000 于 2015-11-16 23:55 编辑
  1.   #include <stdio.h>
  2.   struct student
  3.   {
  4.      int num;
  5.      char name[20];
  6.      char sex;
  7.      int age;
  8.      char addr[30];
  9.   }stu[3];

  10.   int main()
  11.   {
  12.     int i = 0;
  13.     for(i=0;i<3;i++)
  14.     {
  15.       scanf("%d %s %c %d %s",&stu[i].num,stu[i].name,&stu[i].sex,&stu[i].age,stu[0].addr);
  16.     }
  17. }
复制代码
试试这个 应该没有问题
回复 11# baicaidaoshi


   
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP