鱼C论坛

 找回密码
 立即注册
查看: 2983|回复: 1

[已解决]输入

[复制链接]
发表于 2022-12-7 15:13:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
为什么直接不进行输入,直接跳过,第31行
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. struct Date
  4. {
  5.         int n;
  6.         int y;
  7.         int r;
  8. };
  9. struct Record
  10. {
  11.         char k[16];
  12.         int age;
  13.         struct Date a;
  14.         struct Date b;
  15. };
  16. void shur(struct Record *q[],int i)
  17. {
  18.         char ch;
  19.         int j;
  20.         for(j=0;j<i;j++)
  21.         {
  22.                 q[j]=(struct Record *)malloc(sizeof(struct Record));
  23.         }
  24.         for(j=0;j<i;j++)
  25.         {
  26.                 printf("请输入姓名:");
  27.                 scanf("%s",q[j]->k);
  28.                 printf("请输入年龄:");
  29.                 scanf("%d",&q[j]->age);
  30.                 printf("是否打了第一针疫苗(y/n):");
  31.                 scanf("%c",&ch);
  32.                 if(ch=='y')
  33.                 {
  34.                         scanf("%d-%d-%d",&q[j]->a.n,&q[j]->a.y,&q[j]->a.r);
  35.                 }
  36.                 else
  37.                 {
  38.                         continue;
  39.                 }
  40.                 printf("是否打了第二针疫苗(y/n):");
  41.                 scanf("%c",&ch);
  42.                 if(ch=='y')
  43.                 {
  44.                         scanf("%d-%d-%d",&q[j]->b.n,&q[j]->b.y,&q[j]->b.r);
  45.                 }
  46.                 else
  47.                 {
  48.                         continue;
  49.                 }
  50.         }
  51. }
  52. int main()
  53. {
  54.         int i;
  55.         scanf("%d",&i);
  56.         struct Record *q[i];
  57.         shur(q,i);
  58.         return 0;
  59. }
复制代码
最佳答案
2022-12-7 15:16:54
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. struct Date
  4. {
  5.         int n;
  6.         int y;
  7.         int r;
  8. };
  9. struct Record
  10. {
  11.         char k[16];
  12.         int age;
  13.         struct Date a;
  14.         struct Date b;
  15. };
  16. void shur(struct Record *q[],int i)
  17. {
  18.         char ch;
  19.         int j;
  20.         for(j=0;j<i;j++)
  21.         {
  22.                 q[j]=(struct Record *)malloc(sizeof(struct Record));
  23.         }
  24.         for(j=0;j<i;j++)
  25.         {
  26.                 printf("请输入姓名:");
  27.                 scanf("%s",q[j]->k);
  28.                 printf("请输入年龄:");
  29.                 scanf("%d",&q[j]->age);
  30.                 printf("是否打了第一针疫苗(y/n):");
  31.                 fflush(stdin);/////////////////////////清除缓存,把'\n'消去,否则下面 scanf("%c",&ch);会接收'\n'
  32.                 scanf("%c",&ch);
  33.                 if(ch=='y')
  34.                 {
  35.                         scanf("%d-%d-%d",&q[j]->a.n,&q[j]->a.y,&q[j]->a.r);
  36.                 }
  37.                 else
  38.                 {
  39.                         continue;
  40.                 }
  41.                 printf("是否打了第二针疫苗(y/n):");
  42.                 fflush(stdin);/////////////////////////清除缓存,把'\n'消去,否则下面 scanf("%c",&ch);会接收'\n'
  43.                 scanf("%c",&ch);
  44.                 if(ch=='y')
  45.                 {
  46.                         scanf("%d-%d-%d",&q[j]->b.n,&q[j]->b.y,&q[j]->b.r);
  47.                 }
  48.                 else
  49.                 {
  50.                         continue;
  51.                 }
  52.         }
  53. }
  54. int main()
  55. {
  56.         int i;
  57.         scanf("%d",&i);
  58.         struct Record *q[i];
  59.         shur(q,i);
  60.         return 0;
  61. }
复制代码
运行结果2.png
运行结果.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-12-7 15:16:54 | 显示全部楼层    本楼为最佳答案   
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. struct Date
  4. {
  5.         int n;
  6.         int y;
  7.         int r;
  8. };
  9. struct Record
  10. {
  11.         char k[16];
  12.         int age;
  13.         struct Date a;
  14.         struct Date b;
  15. };
  16. void shur(struct Record *q[],int i)
  17. {
  18.         char ch;
  19.         int j;
  20.         for(j=0;j<i;j++)
  21.         {
  22.                 q[j]=(struct Record *)malloc(sizeof(struct Record));
  23.         }
  24.         for(j=0;j<i;j++)
  25.         {
  26.                 printf("请输入姓名:");
  27.                 scanf("%s",q[j]->k);
  28.                 printf("请输入年龄:");
  29.                 scanf("%d",&q[j]->age);
  30.                 printf("是否打了第一针疫苗(y/n):");
  31.                 fflush(stdin);/////////////////////////清除缓存,把'\n'消去,否则下面 scanf("%c",&ch);会接收'\n'
  32.                 scanf("%c",&ch);
  33.                 if(ch=='y')
  34.                 {
  35.                         scanf("%d-%d-%d",&q[j]->a.n,&q[j]->a.y,&q[j]->a.r);
  36.                 }
  37.                 else
  38.                 {
  39.                         continue;
  40.                 }
  41.                 printf("是否打了第二针疫苗(y/n):");
  42.                 fflush(stdin);/////////////////////////清除缓存,把'\n'消去,否则下面 scanf("%c",&ch);会接收'\n'
  43.                 scanf("%c",&ch);
  44.                 if(ch=='y')
  45.                 {
  46.                         scanf("%d-%d-%d",&q[j]->b.n,&q[j]->b.y,&q[j]->b.r);
  47.                 }
  48.                 else
  49.                 {
  50.                         continue;
  51.                 }
  52.         }
  53. }
  54. int main()
  55. {
  56.         int i;
  57.         scanf("%d",&i);
  58.         struct Record *q[i];
  59.         shur(q,i);
  60.         return 0;
  61. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-23 01:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表