C语音中从键盘输入一个小于1000的正数,要求输出它的平方根(如平方根不是整数,则输出其整数部分)。要求在输入数据后先对其进行检查是否为小于1000的正数。若不是,则要求重新输入。
时间: 2024-10-24 09:18:47 浏览: 11
在C语言中,你可以使用`<math.h>`库来计算平方根,并通过循环结构来实现输入验证的功能。以下是一个简单的程序示例:
```c
#include <stdio.h>
#include <math.h>
int main() {
double num;
int valid_input = 0;
while (!valid_input) {
printf("请输入一个小于1000的正数: ");
if (scanf("%lf", &num) == 1 && num > 0 && num < 1000) {
// 计算并保留整数部分的平方根
double sqrt_num = sqrt(num);
int integer_sqrt = sqrt_num < 0 ? 0 : floor(sqrt_num); // 如果是负数,结果设为0
printf("输入数字 %lf 的平方根是整数 %d\n", num, integer_sqrt);
valid_input = 1; // 输入有效,跳出循环
} else {
printf("错误! 请输入正确的正数并且小于1000。\n");
clearerr(stdin); // 清除上一次输入的错误信息
}
}
return 0;
}
```
在这个程序中,我们首先提示用户输入,然后使用`scanf`函数获取输入并检查它是否满足条件。如果输入无效,我们会清除错误标志,提示用户重新输入。当输入正确时,我们计算并打印出整数部分的平方根。
阅读全文