从键盘输入一个小于1000的正数,要求输出它的平方根(如平方根不是整数,则输出其整数部分)。要求在输入数据后先对其进行检查是否为小于1000的正数。若不是,则要求从新输入
#include<stdio.h>
#include<math.h>
#define M 1000
int main()
{
int i, k;
printf("请输入一个小于%d的整数i:",M);//小于1000的速度
scanf_s("%d", &i);//输入数字赋给i
if (i > M)//判断i>M
{
printf("输入数据不符合要求,请重新输入一个小于%d的整数i:", M);
scanf_s("%d", &i);
}
k = int(sqrt((double)i));//计算平方根
printf("%d的平方根的整数部分是%d\n", i, k);
return 0;
}
此程序从书上抄的经过运行发现问题:
可以看出在给出第二次大于1000的数时不会判断是否小于1000
经高手解答 : if ( i>M) 改成 while (i>M)