|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
/*输入一个小于1000的正数,并且要求对其进行检查是否是小于1000的正数,然后求其平方根,若平方根是小数,则显示整数部分*/
#include <stdio.h>
#include <math.h>
int main(){
int i,k;
printf("请输入一个小于1000的正数:");
scanf("%d",&i);
if(i>=1000){
printf("请按要求输入!!\n请输入一个小于1000的正数:");
scanf("%d",&i);
}
else if(i<0){
printf("请按要求输入!!\n请输入一个小于1000的正数:");
scanf("%d",&i);
}
k=sqrt((double)i);
printf("%d的平方根是 : %d",i,k);
return 0;
}
今天试着写书上的题目,在这一题的时候出现了一个问题,就是输入1000,还有 1001的时候,控制台显示1000(1001)的平方根是31,请问是我代码哪里不对吗?
你应该把中间判断输入是否正确放在一个循环中,当输入值符合要求的时候才执行下面的计算语句。
你的程序没有循环,若两次输入数据都不符合要求,程序也会继续向下执行,计算第二次输入的值的平方根。
- #include <stdio.h>
- #include <math.h>
- int main(){
- int i,k;
- printf("请输入一个小于1000的正数:");
- scanf("%d",&i);
- while(1){
- if(i>=1000 or i<0){
- printf("请按要求输入!!\n请输入一个小于1000的正数:");
- scanf("%d",&i);
- }
- else
- break;
- }
- k=sqrt((double)i);
- printf("%d的平方根是 : %d",i,k);
- return 0;
- }
复制代码
|
|