亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

幫我糾錯謝謝

#include <stdio.h>

#include <math.h>

#define M 1000

int main()

{

int num;

printf("請輸入一個小于%d的正數:",M);

scanf("%d",&num);

while(num>1000)

{printf("輸入有誤請重新輸入:");

scanf("%d",&num);

}

printf("%d的平方根是%d",num,sqrt(num));

return 0;

}

以上是錯誤代碼

#include <stdio.h>

#include <math.h>

#define M 1000

int main()

{

int num,result;

printf("請輸入一個小于%d的正數:",M);

scanf("%d",&num);

while(num>1000)

{printf("輸入有誤請重新輸入:");

scanf("%d",&num);

}

result=sqrt(num);

printf("%d的平方根是%d",num,result);

return 0;

}

以上是正確代碼 ?誰能解釋解釋呢 為什么第一種不通過 我用的是vc++6.0

正在回答

1 回答

#include <stdio.h>

#include <math.h>

#define M 1000

int main()

{

int num;

printf("請輸入一個小于%d的正數:",M);

scanf("%d",&num);

while(num>1000)

{printf("輸入有誤請重新輸入:");

scanf("%d",&num);

}

printf("%d的平方根是%d",num,(int)sqrt(num));

return 0;

}

或者 ("%d的平方根是%5.2f",num,sqrt(num));


因為你沒規定sqrt(num)是什么型。而sqrt默認似乎是浮點型,你可以去查一查。

你用result接收了的數據,而你定義 int result;所以就是整形,值就是整數,這樣也會丟失小數.

如果你為了精確可以定義 float result;

0 回復 有任何疑惑可以回復我~
#1

kiwilee0406 提問者

非常感謝!
2016-10-20 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

幫我糾錯謝謝

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號