用C语言,从键盘输入一个小于1000的正数,要求输出它的平方根(如 平方根不是整数,则输其整数部分)。要求在输入数据后先 对其进行检查是否为小于1000的正数。若不是,则要求重新 输入.
时间: 2024-11-21 07:38:22 浏览: 14
在C语言中,我们可以使用`scanf`函数获取用户输入,然后利用数学库中的`sqrt`函数计算平方根,同时检查输入的合法性。以下是一个简单的示例程序:
```c
#include <stdio.h>
#include <math.h>
int main() {
double num;
// 循环获取用户输入直到得到符合条件的数
while (true) {
printf("请输入一个小于1000的正数(或输入q退出):");
if (scanf("%lf", &num) != 1 || num <= 0 || num >= 1000) { // 检查输入是否有效
printf("输入错误,请重新输入一个小于1000的正数.\n");
// 清理输入缓冲区
scanf("%*[^\n]");
} else {
// 计算平方根并判断是否为整数
double root = sqrt(num);
long int int_root = (long int)root; // 将浮点数转为整数
if (root == int_root) {
printf("输入的数字 %f 的平方根是整数:%ld\n", num, int_root);
} else {
printf("输入的数字 %f 的平方根是:%.2lf\n", num, root); // 只保留两位小数
}
break; // 输入有效,跳出循环
}
}
return 0;
}
```
这段程序会不断询问用户输入,直到输入一个小于1000的正数。如果输入不符合条件,它会清理输入缓冲区并再次提示用户输入。注意,为了防止`scanf`读取超出预期的数据,我们在判断完输入有效性后清空了缓冲区。
阅读全文