用c语言的选择结果编写程序,从键盘输入一个小于1000的正数,要求输出它的平方根(如平方根不是整数,则输出其整数部分)。要求在输入数据后先对其进行检查是否为小于1000的正数。若不是,则要求重新输入。
时间: 2024-10-22 10:16:50 浏览: 32
下面是一个简单的C语言程序,用于实现上述功能。首先,我们使用`scanf`获取用户输入的数字,然后检查输入的数是否满足条件。如果不满足,我们会提示用户重新输入。最后,我们计算并打印出输入数字的平方根,如果是非整数,只输出整数部分。
```c
#include <stdio.h>
#include <math.h> // 导入math库以便使用sqrt函数
int main() {
double num;
while (1) { // 循环直到得到有效的输入
printf("请输入一个小于1000的正数:");
if (scanf("%lf", &num) == 1 && num > 0 && num < 1000) { // 检查输入条件
break; // 输入有效,跳出循环
} else {
printf("输入无效,请重新输入。\n");
// 清空输入缓冲区,防止前一次输入干扰下一次输入
while (getchar() != '\n');
}
}
double square_root = sqrt(num); // 计算平方根
int integer_part = (int)square_root; // 取整数部分
printf("输入数字的平方根是 %d(如果它是整数),如果不是则四舍五入后的整数部分。\n", integer_part);
return 0;
}
```
在这个程序中,`scanf`会尝试读取一个浮点数,如果输入的是一个小于1000的正数,`scanf`会返回1,并将值存入`num`。如果输入不符合条件,`scanf`不会返回1,我们就提示用户重新输入,并清空输入缓冲区。
阅读全文