用C写一段代码检测用户输入的是不是数字如果不是一直重输直到是数字为止
时间: 2024-03-18 15:40:19 浏览: 16
以下是一个简单的示例代码,可以检测用户输入的是否为数字,如果不是数字则一直重复提示用户重新输入,直到输入的是数字为止:
```
#include <stdio.h>
#include <ctype.h>
int main() {
char input[100];
int is_digit = 0;
while(!is_digit) {
printf("请输入一个数字:");
scanf("%s", input);
is_digit = 1;
for(int i = 0; input[i] != '\0'; i++) {
if(!isdigit(input[i])) {
is_digit = 0;
break;
}
}
if(!is_digit) {
printf("输入有误,请重新输入!\n");
}
}
printf("输入正确,您输入的数字为:%s\n", input);
return 0;
}
```
上述代码中,首先定义了一个字符数组input用于存储用户输入的字符串。然后使用一个while循环不断提示用户输入数字,直到用户输入的是数字为止。
在循环中,首先将is_digit变量置为1,表示当前输入是数字。然后使用一个for循环遍历输入的字符串,如果发现其中有一个字符不是数字,则将is_digit置为0,并跳出循环。
如果输入的不是数字,则打印错误提示信息,继续进入下一轮循环,让用户重新输入。如果输入的是数字,则跳出循环,输出正确结果。
需要注意的是,上述代码中使用了isdigit函数来判断一个字符是否为数字,该函数需要包含头文件<ctype.h>。