| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 611 人关注过本帖
标题:求助 关于if else以及循环问题
只看楼主 加入收藏
xunxicyuyan
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-7-1
结帖率:0
收藏
已结贴  问题点数:10 回复次数:10 
求助 关于if else以及循环问题
录入一定数据并进行查找,如不匹配则else单纯循环,无论输入值是否正确都只输出else语句内容
代码如下:

#include<stdio.h>
    struct personnel{
    char name[15],birthplace[15];
    int age, id;
    //if the input ID is not int, the next two line will appear together//
    //what is the problem?//
    //Answer: the later Enter in the buffer makes the gets() skip//
    //add flushall() will do good//
};
int ctr,check;
main()
{
    struct personnel profile[3];
    for(ctr=0; ctr<2; ctr++)
    {
      printf("\n%d.Hello, what's your name?\n", ctr+1);
      gets(profile[ctr].name);
      puts("\nwhat's your id number?");
      scanf(" %d", &profile[ctr].id);
      fflush(stdin);
      puts("\nOk, what's your birthplace?");
      gets(profile[ctr].birthplace);
      fflush(stdin);
      puts("\nAlright, what's your age");
      scanf(" %d", &profile[ctr].age);
      fflush(stdin);
    }
      puts("Which ID do you want to check:");
      scanf(" %d", &check);
    for(ctr=0; ctr<2; ctr++)
    {if(check == profile[ctr].id)
      {
      printf("\nThe id you are checking is %d, name:%s, age:%d, born:%s\n\n",
      profile[ctr].id, profile[ctr].name, profile[ctr].age,
      profile[ctr].birthplace);
      break;
      }
     else
      {
          puts("Please type in correct id number");
          fflush(stdin);
       scanf(" %d", &check);
       continue;
      }
    }
   }
搜索更多相关主题的帖子: together include problem profile appear 
2015-07-01 10:33
xunxicyuyan
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-7-1
收藏
得分:0 
没人回答楼主吗
2015-07-01 11:47
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:3 
回复 2楼 xunxicyuyan
运行没问题

剑栈风樯各苦辛,别时冰雪到时春
2015-07-01 11:54
xunxicyuyan
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-7-1
收藏
得分:0 
回复 3楼 林月儿
会是我使用的编译器的问题吗?我用的C-Free5.0
2015-07-01 11:58
自傲
Rank: 2
等 级:论坛游民
帖 子:53
专家分:95
注 册:2015-5-16
收藏
得分:3 
为毛不用codeblock呢?
2015-07-01 12:17
TAAAAB
Rank: 7Rank: 7Rank: 7
来 自:湖南
等 级:黑侠
威 望:1
帖 子:243
专家分:635
注 册:2011-5-29
收藏
得分:3 
这个循环的逻辑好像有问题,正常一点的应该是每一次在所有人中找。

程序代码:
for(ctr=0; ctr<2; ctr++)
    {if(check == profile[ctr].id)
      {
      printf("\nThe id you are checking is %d, name:%s, age:%d, born:%s\n\n",
      profile[ctr].id, profile[ctr].name, profile[ctr].age,
      profile[ctr].birthplace);
      break;
      }
     else
      {
          puts("Please type in correct id number");
          fflush(stdin);
       scanf(" %d", &check);
       continue;
      }
    }

人有多懒,编程就有多难。
2015-07-01 12:35
luoye1994
Rank: 2
等 级:论坛游民
帖 子:57
专家分:58
注 册:2015-6-29
收藏
得分:3 
fflush(stdin)是清空输入缓冲区,你输入一个profile[].id都会被清空,check != profile[].id,所以总会运行else!
2015-07-01 13:40
xunxicyuyan
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-7-1
收藏
得分:0 
回复 7楼 luoye1994
好像不是吧 清空前不已经存到相应地址了?
2015-07-01 15:03
xunxicyuyan
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-7-1
收藏
得分:0 
回复 5楼 自傲
小白 我试试
2015-07-01 15:04
xunxicyuyan
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-7-1
收藏
得分:0 
回复 6楼 TAAAAB
为了方便 我就测试2组数据啊
2015-07-01 15:04
快速回复:求助 关于if else以及循环问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012499 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved