| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1050 人关注过本帖
标题:循环问题,为什么输入字符的时候,会一直循环,我只是想他输入字符的时候生 ...
只看楼主 加入收藏
zhangok001
Rank: 1
等 级:新手上路
帖 子:16
专家分:6
注 册:2015-7-28
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:19 
循环问题,为什么输入字符的时候,会一直循环,我只是想他输入字符的时候生新输入密码;还有输入数字密码错误的时候要输入两次才显示错误消息,怎么解决!
# include <stdio.h>
int main(void)
{
    int pass;
   
loop:
   
    printf("请输入密码:");
    scanf("%d",&pass);
    if(pass==123456)
        printf("\n密码正确:\n");
    else if(1!=scanf("%d",&pass))
    {
        printf("\n你输入的不是数字,请重新输入:");
        
        goto loop;
    }
    else if(pass==123456)
        printf("\n密码正确:");
    else
        
        printf("\n密码错误:");
   
    return 0;
}
搜索更多相关主题的帖子: include 输入密码 return 
2015-08-23 11:34
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:0 
写的有点乱,好吧!是很乱
2015-08-23 15:46
实际应用
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:89
专家分:341
注 册:2015-5-30
收藏
得分:0 
输入字符的时候,goto 到开头重新开始,所以会一直循环
输入数字密码错误的时候,又scanf 了,所以得输入两次
把开始的几行删了
 scanf("%d",&pass);
    if(pass==123456)
         printf("\n密码正确:\n");
     else
2015-08-23 21:07
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你用scanf(),把密碼都顯示出來,還密什麼碼!

授人以渔,不授人以鱼。
2015-08-23 21:24
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 4楼 TonyDeng
loop:
go to
建议使用bool变量结合循环控制结束可能好些
毕竟很少用这种强制跳转语句了

剑栈风樯各苦辛,别时冰雪到时春
2015-08-23 21:30
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 5楼 林月儿
現在的學生,一開始就不學模塊化編程,是這樣的了。

授人以渔,不授人以鱼。
2015-08-23 21:32
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 6楼 TonyDeng
我也是学生啦,面向过程的经历过,现在接触面向对象等综合性编程语言感受最深的不是图形化界面设计插件的便利
而是代码逻辑性的理解,虽说很多如数据处理控件布局设置等都趋于模块化。。。但还是建议循序渐进对代码书写过程中逻辑的条理化
还是不要一上来就最省事的,那样反而是适得其反

剑栈风樯各苦辛,别时冰雪到时春
2015-08-23 21:37
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你寫個給他看

授人以渔,不授人以鱼。
2015-08-23 21:54
zhangok001
Rank: 1
等 级:新手上路
帖 子:16
专家分:6
注 册:2015-7-28
收藏
得分:0 
我的意思是说goto 跳到回头后为什么没停下要求要输入数据,而直接的循环上次输入的错识的提示.
2015-08-24 09:18
zhangok001
Rank: 1
等 级:新手上路
帖 子:16
专家分:6
注 册:2015-7-28
收藏
得分:0 
# include <stdio.h>
int main(void)
{
    int pass;
   
loop:
   
    printf("请输入密码:");
    scanf("%d",&pass);
      else if(1!=scanf("%d",&pass))
    {
        printf("\n你输入的不是数字,请重新输入:");
        
        goto loop;
    }
    else if(pass==123456)
        printf("\n密码正确:");
    else
        
        printf("\n密码错误:");
   
    return 0;
}
2015-08-24 09:20
快速回复:循环问题,为什么输入字符的时候,会一直循环,我只是想他输入字符的时 ...
数据加载中...
 
   



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

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