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

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

童鞋們進來看看這里,或許你們能看懂,集合各位評論的答案,以及原本答案的講解,莫噴

1、有的童鞋說判斷條件可以是<=999,這點是沒有任何問題的。

<1000或者<=999都是沒有任何問題的。

2、hd=num / 100;

? ?打個比方,比如num=211。

? ?211 / 100=2.11

? ?因為你定義的是int類型,輸出的也是整數類型。

? ?所以計算機也不會給你四舍五入的計算,它只會

? ?獲得你的整數部分的數目。

3、td=(num%100) / 10;

? ?根據上面的結論可以得出。

? ?num=212;

? ?211%100他只得到了兩個數值:12;

? ?但是我們需要個位的數值,所以我們還要除以10;

? ?12/10=1.1;

? ?根據上面結論可以得出,計算機只會取你的整數部分。

? ?所以我們就輕松的獲得了十位數的1;

4、sd=num % 10;

? ?根據上面的結論可以得出一個怎么樣的結果呢?

? ?num=211;

? ?212%10 = = 2;根據上面的結論可以自己算算。這里就不

? ?多加解釋。

二、很多聰明的童鞋有另外幾種解釋方法。

? ? 我也看入迷了。

? ? 比如獲得個位數的數字可以用以下這種方法

? ? num / 10 % 10

? ? num=211;

? ? 211/10=11;

? ? 11%10=1;

? ? 這樣我們也可以得到個位數;

三、有個童鞋的幾行數據也讓我耳目一新;

? ? 我也照葫蘆畫瓢的把數值帶入進去算了一下;

? ? 以下是計算結果:

? ? #define num = 100;

? ? hd = (num-num%100)/100;

? ? //同學方法

? ? hd = (100-0)/100;

? ? hd = 1;

? ? //帶入法

? ? td = (num%100-num%10)/10;

? ? td = (0-0)/10;

? ? td = 0;

? ? sd = num%10;

? ? sd = 0;

? ? 這樣三位數就得出來了。

四、還有童鞋最后的if(sum == hd*hd*hd+td*td*td+sd*sd*sd)

? ? 是不是少打了一個等于號結果就變了?我們來看看。

? ? for(sum=100;sum<1000;sum++)

{

hd = sum / 100;

td = (sum%100) / 10;

sd = sum % 10;

if(sum = hd*hd*hd+td*td*td+sd*sd*sd)

//少打了一個等于號。這代表的是賦值,而不是等于!!

}

? ? 我們來一步一步帶入數值看看為什么會出現那種結果:

? ? sum=100;

? ? hd = 1;

? ? td = 0;

? ? sd = 0;

? ? ?因為if里面是賦值運算,并不是相等運算。

? ? 請看這兩個式子

? ? sum = 1;

? ? sum == 1;

第一個的解釋是把1這個數字賦值到sum里,并沒判斷他們相等

所以就會直接輸出一個1字。

第二個的解釋是sum是否等于1;100!=1的,所以不會輸出內容,直到水仙花模式開啟!

sum == 153;

這樣就會輸出153;

? ? 小伙伴就會問,那第一個式子往下走呢?

? ? 這里我就給大家帶入看看。

? ? 因為sum = 1;

? ? 輸出一個1之后,然后又進入for模式:

? ? 因為我給sum賦值了一個1;

? ? 所以for里面定義的變量就起不了作用。

? ? 我循環照樣循環;

? ? 自增也照樣自增。

? ? 然后 sum++就為2了。

? ? hd = num /100;

其結果是小數,啪嘰結果就為0;

? ? td = (num%100)/10;

? ? td = 2 /10;

又是小數。啪嘰結果又為0;

? ? sd = num % 10;

? ? sd = 2 % 10

? ? sd = 2;

進入if(num = 0+0+2*2*2)

? ? ?又是賦值運算 num = 8;

輸出一次是不是8呢?

因為是賦值運算,而不是判斷。所以又一次輸出num的結果。

小伙伴們可以繼續往下算算哦!


正在回答

60 回答

111

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

啦啦啦

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

額v過

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

D項不是4列嗎?[][3]怎么理解

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

里面任務題的答案在哪看

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

我感覺我看懂了,但是去填寫代碼的時候我級的無從下手

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

,,,?

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

這個沒問題

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

#include <stdio.h>
int main()
{
??? //定義三位數num,個位數sd,十位數td,百位數hd
??? int num, sd, td, hd;
??? //循環所有三位數
??? for(num=100;num<=999;num++)
??? {
??????? //獲取三位數字num百位上的數字
??????? hd = num/100;
??????? //獲取三位數字num十位上的數字
??????? td =(num/10)%10;
??????? //獲取三位數字num個位上的數字
??????? sd =num%10;
??????? //水仙花數的條件是什么?
??????? if(hd*hd*hd+td*td*td+sd*sd*sd==num)
??????? {
??????????? printf("水仙花數字:%d\n", num);???
??????? }
??? }
??? return 0;???
}

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

#include <stdio.h>

int main()

{

? ? //定義三位數num,個位數sd,十位數td,百位數hd

? ? int num, sd, td, hd;

? ? //循環所有三位數

? ? for( sd=0,td=0,hd=0 ;sd<=9,td<=9,hd<=9 ;sd++,td++,hd++)

? ? {

? ? ? ? if(num=sd*sd*sd+td*td*td+hd*hd*hd)?

? ? ? ? {

? ? ? ? ? ? if(num>=100)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? printf("水仙花數字:%d\n", num); ??

? ? ? ? ? ? }

? ? ? ? }

? ? }

? ? return 0; ? ?

}

這么寫行不

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

小方lll

當然不行啦,這個全部都是一樣的數字相乘
2018-04-03 回復 有任何疑惑可以回復我~
首頁上一頁123456下一頁尾頁

舉報

0/150
提交
取消

童鞋們進來看看這里,或許你們能看懂,集合各位評論的答案,以及原本答案的講解,莫噴

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

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

幫助反饋 APP下載

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

公眾號

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