| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1826 人关注过本帖
标题:关于do循环嵌套的问题,求帮助~
只看楼主 加入收藏
是心愿
Rank: 1
等 级:新手上路
帖 子:75
专家分:0
注 册:2016-6-22
结帖率:62.5%
收藏
 问题点数:0 回复次数:12 
关于do循环嵌套的问题,求帮助~
    这个程序只能判断第一个if,第二个第三个都判断不了  
         请问怎样修改能使 只有全部不满足if时才能跳出do执行之后的内容,只要有一个满足就继续循环?
                do
        {  p3=1;
           q3=1;
           t3=1;
            printf("输入邮箱: ");
                        scanf("%s",&finformation.fnum);
                        printf("请输入手机号: ");
                        scanf("%s",&finformation.fp1);
                        printf("请输入所属公司: ");
                        scanf("%s",&finformation.fp1);
                for(i=0;i<18;i++)
                 {
               if(strcmp(line[i].fnum,finformation.fnum)==0)  p3=0;
                       if(strcmp(line[i].fnum,finformation.fp1)==0)  q3=0;
               if(strcmp(line[i].fnum,finformation.fp2)==0)  t3=0;
             }
        }while(p3==0||q3==0||t3==0);   
            system("pause");
搜索更多相关主题的帖子: 输入手机号 
2016-09-02 19:07
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:0 
scanf("%s",&finformation.fnum);
scanf("%s",&finformation.fp1);
scanf("%s",&finformation.fp1);
这三句你确定没问题????
将while里||改成&&就行了。

[此贴子已经被作者于2016-9-2 20:24编辑过]

2016-09-02 20:19
是心愿
Rank: 1
等 级:新手上路
帖 子:75
专家分:0
注 册:2016-6-22
收藏
得分:0 
回复 2楼 linlulu001
你好,应该是没有问题的吧,我在前面已经构建结构了 就是这个:struct flyline finformation;
现在要把输入的内容加到这个结构里: struct flyline line[18],您觉得正确吗
2016-09-02 20:56
是心愿
Rank: 1
等 级:新手上路
帖 子:75
专家分:0
注 册:2016-6-22
收藏
得分:0 
回复 2楼 linlulu001
你好~我的意思是 只要有一个满足if 就得继续循环,不能那样改吧
2016-09-02 21:11
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:0 
不好意思,搞错你的意思了。
你的代码就能实现你的目标。不能实现跳出要从循环里其它地方找找原因。
既然你确定你写的那三句scanf没问题就行了。
2016-09-03 00:06
是心愿
Rank: 1
等 级:新手上路
帖 子:75
专家分:0
注 册:2016-6-22
收藏
得分:0 
回复 5楼 linlulu001
已删

[此贴子已经被作者于2016-9-3 18:45编辑过]

2016-09-03 09:36
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
回复 6楼 是心愿
用scanf输入字符串时中间是不能有空格的,有空格就按两个字符串处理。就像你输入驾驶员zhao qi时自动退出循环,其实此时驾驶员为zhao,副驾驶为qi。
想输入空格的名称时,输入函数改为gets。
2016-09-03 10:07
是心愿
Rank: 1
等 级:新手上路
帖 子:75
专家分:0
注 册:2016-6-22
收藏
得分:0 
回复 7楼 ehszt
但将飞行员fp1,fp2的输入变为gets之后,他就不让我输入两个飞行员的名字了,就是在输飞行员名字前程序就停止了
            printf("请输入驾驶员: ");
            gets(finformation.fp1);
            printf("请输入副驾驶: ");
            gets(finformation.fp2);:
2016-09-03 10:37
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
            printf("请输入驾驶员: ");
             getchar();    //在这里加一行,getchar();
             gets(finformation.fp1);
             printf("请输入副驾驶: ");
             gets(finformation.fp2);
 
2016-09-03 10:45
是心愿
Rank: 1
等 级:新手上路
帖 子:75
专家分:0
注 册:2016-6-22
收藏
得分:0 
你好,如果这样改,第一个驾驶员可以识别了,但是副驾驶还是不能识别。请问要怎样改?
另外我想问一下加一行getchar的原因,谢谢!
2016-09-03 11:01
快速回复:关于do循环嵌套的问题,求帮助~
数据加载中...
 
   



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

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