gpt4 book ai didi

c - c 中的 isdigit 函数我的代码有什么问题?

转载 作者:行者123 更新时间:2023-11-30 18:29:47 25 4
gpt4 key购买 nike

我的代码有什么问题?即使当我输入 1-10 之间的数字或其他任何数字时,它也会直接显示“您没有输入正确的数字”

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int main()
{
// CREATE A VARIABLE TO STORE A RANDO NUMBER ITS TIME THE PROGRAM RUNS

int numdef, randomnum ;

//ASSIGN RANDOM NUMBER
numdef = (rand() % 11);

//PROMT USER TO GUESS A NUMBER BETWEEN 1-10
printf("Please enter a number between 1-10\n");
scanf("%d", &randomnum);


// USE SDIGIT TO VERIFY THAT USER ENTERS A DIGIT

if (isdigit(randomnum))


printf("correct");

// LET HIM KNOW IF HE IS CORRECT OR NOT

else

printf("\nYou did not enter a correct number FOOL!!!,please try again! \n");


return 0;

}

最佳答案

因为isdigit()检查传递的值是否为数字的 ascii 代码。您正在向它传递一个数字,因此它给出 0一直以来。

isdigit()检查x的值是否满足'0' < x < '9' ,其中'0''9'是字符 0 的 ascii 值和9分别4857 .

您正在阅读一个号码 scanf()您不需要检查它是否是一个数字。必须提供 scanf()成功,要验证必须检查 scanf() 的返回值,它是成功扫描的占位符的数量。

所以在你的情况

if (scanf("%d", &randomnum) != 1) // The 1 is for the lonely "%d"
printf("Error, the text entered is not a number\n");
else
printf("You entered `%d'\n", randomnum);

// Trying to read from `randomnum' here is dangerous unless it was
// initialized before `scanf()'.

关于c - c 中的 isdigit 函数我的代码有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35527567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com