用c语言表示从键盘输入一个小于1000的正数,要求输出它的平方根(如果平方根不是整数,则输出其整数部分)。要求在输入数据后先对其进行检查是否为小于1000的正数。若不是,则要求重新输入
时间: 2024-11-30 22:18:19 浏览: 38
在C语言中,你可以使用`<math.h>`库中的`sqrt()`函数来计算平方根,并结合条件语句进行输入验证。下面是一个完整的程序示例:
```c
#include <stdio.h>
#include <math.h>
double getValidInput() {
double num;
while (1) {
printf("请输入一个小于1000的正数: ");
if (scanf("%lf", &num) == 1 && num > 0 && num < 1000) {
break; // 输入有效,退出循环
} else {
printf("输入错误!请重新输入一个小于1000的正数。\n");
clear_input(); // 清除上一次输入
}
}
return num;
}
int main() {
double root;
double input = getValidInput();
root = sqrt(input);
printf("输入数字的平方根是: %.0f\n", floor(root)); // 输出整数部分
return 0;
}
// 清理输入缓冲区,防止干扰下次输入
void clear_input() {
while (getchar() != '\n');
}
```
这个程序会持续提示用户输入直到得到一个有效的正数。如果输入不符合要求,它会清除输入缓存并再次请求输入。
阅读全文