在C语言中从键盘输人一个小于 1000的正数,要求输出它的平方根(如平方根不是整数,则输出其整数部分)。要求在输人数据后先对其进行检查是否为小于 1000的正数。若不是,则要求重新输入
时间: 2024-09-29 13:01:46 浏览: 38
在C语言中,你可以通过以下步骤实现这个功能:
1. 首先,使用 `scanf` 函数从用户那里获取输入的小数值。同时,使用 `if` 语句检查输入是否小于1000且为正数。如果不是,可以使用 `while` 循环提示用户重新输入直到满足条件。
```c
#include <stdio.h>
#include <math.h>
int main() {
double num;
while (1) {
printf("请输入一个小于1000的正数: ");
if (scanf("%lf", &num) != 1 || num <= 0 || num >= 1000) { // 检查输入格式和范围
printf("输入错误,请确保是一个小于1000的正数。");
scanf("\n"); // 清空输入缓冲区
continue; // 继续循环
}
break; // 输入满足条件,跳出循环
}
// 计算并打印整数部分的平方根
int sqrt_int = (int) floor(sqrt(num)); // 使用 floor 函数取整数部分
printf("输入数字的平方根是: %d\n", sqrt_int);
return 0;
}
```
在这个程序中,`floor` 函数用于向下取整,得到的是小于或等于实际平方根的最大整数。如果原数的平方根是整数,那么 `sqrt_int` 就是正确的结果;如果是非整数,`sqrt_int` 将是该整数部分。
阅读全文