#include<stdio.h>
#include<windows.h>
#include<stdlib.h>
#include<time.h>

int a();

int main()
{
char willing='y';

srand(time(NULL));
<

展开全部
收起
4回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • 炎凉世态

    17人对此回答表示赞同

    willing=getchar();
    加上 fflush(stdin);试试 追问
    展开
    17
    0回复
    发布于 5年前

    评论(0)

    收起评论

  • 多面体

    13人对此回答表示赞同

    由于你输入猜测数字的时候每行都多输一个回车,所以最后你猜对的那个数字之后也输入了一个回车,所以 willing 接收的是个回车,直接退出
    改正方法两个:
    1、加上这行 getchar();
    在这行之前 willing=getchar();
    2、用这行 scanf("\n%c",&willing); 替换1、的两行
    展开
    13
    0回复
    发布于 5年前

    评论(0)

    收起评论

  • 萌猫君

    10人对此回答表示赞同

    还是每次输入数字之后的回车搞的鬼
    #include<stdio.h>
    #include<windows.h>
    #include<stdlib.h>
    #include<time.h>

    int a();

    int main()
    {
    char willing='y';

    srand(time(
    展开
    10
    0回复
    发布于 5年前

    评论(0)

    收起评论

  • Xaviera

    2人对此回答表示赞同

    要注意scanf,和getchar的读取机制,他们都需要输入回车才能触发中断将字符送入缓冲区。而scanf在读入数字或字符串以后是不会丢弃空白符(如回车和空格),而getchar会严格读入下一个字符。另外gets()读入一行字符串以后是会丢弃回车符的,这一点要注意。
    解决的方法是写入 while ((c = getchar()) == ' ' || c == '\n');如果读到空格回车则继续读
    展开
    2
    0回复
    发布于 5年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部