从键盘输人一个小于1000的正数,要求输出它的平方根(如平方根不是整数,则输 出其整数部分)。要求在输入数据后先对其进行检查是否为小于1000的正数。若不是, 则要求重新输入,请用c语言
时间: 2024-09-17 08:03:45 浏览: 51
在C语言中,你可以使用`<stdio.h>`库中的`scanf`函数获取用户输入,然后利用数学库`<math.h>`中的`sqrt`函数计算平方根。为了实现输入检查,可以使用`while`循环不断提示用户重新输入,直到满足条件。以下是一个简单的示例程序:
```c
#include <stdio.h>
#include <math.h>
int main() {
double num;
int whole_square;
do {
printf("请输入一个小于1000的正数: ");
if (scanf("%lf", &num) != 1 || num <= 0 || num >= 1000) { // 检查输入是否有效
printf("输入错误!请确保输入的是一个小于1000的正数。\n");
scanf("%*[^\n]"); // 清除上一次输入的无效字符
}
} while (!((whole_square = floor(sqrt(num))) == sqrt(num)); // 检查是否有小数部分
printf("输入数字的平方根是: %.0f\n", whole_square); // 只保留整数部分
return 0;
}
```
在这个程序中,`floor`函数用于取下取整,确保得到的值没有小数部分。如果用户输入了一个大于等于1000的数或不是一个正数,程序会继续询问。当满足条件时,程序会输出整数部分的平方根。
阅读全文