c语言去小数点读数,scanf_s 读数,检查的时候一输入字母,陷入死循环。

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

scanf_s,和scanf差不多,最后一个参数限定读几位。我想不通原因,同时觉得很神奇。

# include

# include

# include

//输入d.会陷入死循环,原因不明。待解。

void question(unsigned int k);

int a0;

int main(void)

{

int answer;

unsigned int kind;

srand(time(NULL));

printf("welcome to use this app to study!\nqustion: 111 to quit\n");

printf("choose the kind of operation that you'd like to do: 1 for +,2 for -, 3 for x, 4 for /\n");

scanf_s("%u", &kind, 10);

while (kind<1||kind>4)

{

printf("wrong inputting, choose it again\n");

scanf_s("%u", &kind, 10);

}

question(kind);

scanf_s("%d", &answer,7);

while (answer != 111)

{

if (answer==a0)

{

printf("very good!\n");

question(kind);

}

else

{

printf("no,please try again\n");

}

scanf_s("%d", &answer,7);

}

}

void question(unsigned int k)

{

int a, b;

a = rand() % 10;

b = rand() % 10;

switch (k)

{

case 1: a0 = a+b;

printf("how much is %d add %d ?\n", a, b);

break;

case 2: a0 = a - b;

printf("how much is %d minus %d ?\n", a, b);

break;

case 3: a0 = a * b;

printf("how much is %d times %d ?\n", a, b);

break;

case 4: k = rand() % 3 + 1;

question(k);

break;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值