幫我糾錯(cuò)謝謝
#include <stdio.h>
#include <math.h>
#define M 1000
int main()
{
int num;
printf("請(qǐng)輸入一個(gè)小于%d的正數(shù):",M);
scanf("%d",&num);
while(num>1000)
{printf("輸入有誤請(qǐng)重新輸入:");
scanf("%d",&num);
}
printf("%d的平方根是%d",num,sqrt(num));
return 0;
}
以上是錯(cuò)誤代碼
#include <stdio.h>
#include <math.h>
#define M 1000
int main()
{
int num,result;
printf("請(qǐng)輸入一個(gè)小于%d的正數(shù):",M);
scanf("%d",&num);
while(num>1000)
{printf("輸入有誤請(qǐng)重新輸入:");
scanf("%d",&num);
}
result=sqrt(num);
printf("%d的平方根是%d",num,result);
return 0;
}
以上是正確代碼 ?誰能解釋解釋呢 為什么第一種不通過 我用的是vc++6.0
2016-10-20
#include <stdio.h>
#include <math.h>
#define M 1000
int main()
{
int num;
printf("請(qǐng)輸入一個(gè)小于%d的正數(shù):",M);
scanf("%d",&num);
while(num>1000)
{printf("輸入有誤請(qǐng)重新輸入:");
scanf("%d",&num);
}
printf("%d的平方根是%d",num,(int)sqrt(num));
return 0;
}
或者 ("%d的平方根是%5.2f",num,sqrt(num));
因?yàn)槟銢]規(guī)定sqrt(num)是什么型。而sqrt默認(rèn)似乎是浮點(diǎn)型,你可以去查一查。
你用result接收了的數(shù)據(jù),而你定義 int result;所以就是整形,值就是整數(shù),這樣也會(huì)丟失小數(shù).
如果你為了精確可以定義 float result;