你用C语言写代码实现 用户输入360以下的所有数字包括小数,如果用户输入的是字符串或超出范围提示重新输入
时间: 2024-03-20 19:41:36 浏览: 46
下面是一个用 C 语言实现的程序,可以让用户输入 360 以下的所有数字(包括小数),并且会检查用户输入的数据是否合法。如果用户输入的是字符串或超出范围,则会提示用户重新输入。
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
float num;
char input[100];
int valid_input = 0;
while (!valid_input) {
printf("请输入360以下的数字:");
fgets(input, 100, stdin);
num = atof(input);
if (num > 360) {
printf("输入的数字超过了360,请重新输入。\n");
} else if (num == 0 && input[0] != '0') {
printf("输入的不是数字,请重新输入。\n");
} else {
valid_input = 1;
}
}
printf("您输入的数字是:%.2f\n", num);
return 0;
}
```
程序的运行过程如下:
1. 程序首先声明了一个变量 `num`,用来存储用户输入的数字,还声明了一个字符数组 `input`,用来存储用户输入的字符串。
2. 然后进入了一个 while 循环,循环条件是 `!valid_input`,也就是当 `valid_input` 的值为 0 时循环继续。这个变量会在用户输入合法的数字后被设置为 1,从而跳出循环。
3. 在循环中,程序先输出提示信息,要求用户输入数字。然后调用 `fgets` 函数从标准输入流中读入用户输入的字符串,并将其存储到 `input` 数组中。
4. 接下来,程序调用 `atof` 函数将 `input` 数组中的字符串转换为浮点数,并将其存储到 `num` 变量中。
5. 然后程序检查用户输入的数字是否合法。如果用户输入的数字超过了 360,则输出提示信息,并让程序重新开始循环;如果用户输入的不是数字(例如输入了字母),则同样输出提示信息,并让程序重新开始循环;如果用户输入的数字合法,则将 `valid_input` 设置为 1,跳出循环。
6. 最后,程序输出用户输入的数字,并返回 0,结束程序的运行。
希望对你有所帮助!
阅读全文