A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

随机产生一个数字,直到产生6。
    int i = 0;
    char c;
    printf("请输入回车,开始摇号");
    for (int rand = 0; rand != 6;) {
        scanf("%c",&c);
        rand = arc4random()%6 +1;
        i++;
        if (rand == 6) {
            printf("第%d次,终于摇到%d了,恭喜您!",i,rand);
            break;
        }
        printf("第%d次,结果%d,未要摇到6,请再输入回车摇",i,rand);
    }
    printf("\n");

本人还是一个初学者,发现for循环开始后就是电脑自动运行,这几天琢磨怎么能实现手动控制。发现scanf可以实现这种打一次回车,才出一次结果。直到出现某个值,就跳出循环。小聪明,本人初来乍到,大神勿喷。哈哈。为了赚技术分的啊。

运行结果如下

请输入回车,开始摇号
1,结果3,未要摇到6,请再输入回车摇
2,结果2,未要摇到6,请再输入回车摇
3,结果1,未要摇到6,请再输入回车摇
4,结果5,未要摇到6,请再输入回车摇
5,结果3,未要摇到6,请再输入回车摇
6,结果2,未要摇到6,请再输入回车摇
7,结果4,未要摇到6,请再输入回车摇
8,结果5,未要摇到6,请再输入回车摇
9,结果1,未要摇到6,请再输入回车摇
10,结果5,未要摇到6,请再输入回车摇
11,结果5,未要摇到6,请再输入回车摇
12,结果5,未要摇到6,请再输入回车摇
13,结果4,未要摇到6,请再输入回车摇
14,结果4,未要摇到6,请再输入回车摇
15,终于摇到6了,恭喜您!

2 个回复

正序浏览
yyx1992 发表于 2015-3-13 20:45
楼主差矣,scanf 输入结束的标志就是回车,意思就是不管你输入了什么只要一回车,系统就会认为你输入结束了 ...

恩,就是利用这个感觉上,每次出结果都需要打一次回车。呵呵。这几天看视频,都看疯了,娱乐一下了。
回复 使用道具 举报
楼主差矣,scanf 输入结束的标志就是回车,意思就是不管你输入了什么只要一回车,系统就会认为你输入结束了,就会继续scanf之后的代码,其实while循环此处最合适,个人见解,仅供参考
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马