1樓:匿名使用者
首先第一個問題:
k一點都沒用到,估計是因為作者怕變數不夠使,提前設定,我以前也這麼做過,所以見怪不怪。區域性變數在函式中沒有使用,基本也就沒什麼用了,你可以忽略之。
第二個問題:
感覺這段**的作者挺奇葩,為了避免括號太多出錯,竟然在while迴圈體裡玩起了逗號分隔,但是意思一樣,while迴圈體是
num-=comb(n-j,m-i-1),j++;
我沒試過,估計和
是一樣的,因為逗號說明他們是同一個語句,要一起執行的。
2樓:匿名使用者
逗號表示式,則先計算逗號前面的表示式,再計算逗號後面的表示式,整個逗號表示式的值就是逗號後面表示式的值。
while(num>comb(n-j,m-i-1))num-=comb(n-j,m-i-1),j++;//沒有花括號,那麼while只管到第一個分號。
等價於:
while(num>comb(n-j,m-i-1))//一般的程式很少使用逗號表示式,因為可讀性不好,看這樣子寫著表示式的人就是為了偷懶省個花括號。
3樓:匿名使用者
int i,j=1,k; 從語法上講沒有錯,從邏輯上講k定義不必要,因為後面根本就沒有用,可直接刪除。
,是逗號運算子(=運算子優先順序高於逗號運算子)。作者主要是為了while迴圈能進行兩個步驟《num-=comb(n-j,m-i-1)和j++;》才這麼寫的。因為while後面如果沒有大括號的話,while迴圈體就只有一句。
這種寫法是及其不規範的,程式設計規範要求while後面必需加大括號以便閱讀和後期維護,萬一以後還要在while中加語句才能很方便。
所以while迴圈最好寫成
while
4樓:匿名使用者
1、k,只是定義一個變數,函式裡面沒有用它2、while的迴圈體是:
while(num>comb(n-j,m-i-1))num-=comb(n-j,m-i-1),j++;
相當於是:
while(num>comb(n-j,m-i-1))3、j++前怎麼是逗號:
num-=comb(n-j,m-i-1),j++;
上面這兩個語句都是賦值語句,所以可以是逗號
5樓:匿名使用者
從哪找的程式,絕對是它的問題,不必考慮了
要麼仔細從出處比對,要是還是這個,你可以不用看它了,誤人子弟
6樓:time語數英
第一個問題:
k只定義,但是沒使用,語法上沒錯。
第二個問題:
num-=comb(n-j,m-i-1),j++;等價於num=num-comb(n-j,m-i-1);
j++;這兩句,while迴圈體裡面就這兩句。
7樓:來自上清鎮勤奮的美羊羊
num-=comb(n-j,m-i-1);
j++;}
8樓:匿名使用者
當有後面可以跟大括號的語句(for、while、if)時,後面若直接跟語句,則到分號為止,或者可以這麼看:for、while、if後面只能跟一條語句,加大括號是將多條語句進行了合併。逗號是逗號運算子,中間用逗號是為了將多條語句進行逗號運算,達到減少**行數的效果,但是這樣寫只會縮減**行數,不會提高執行效率,如果沒有進行優化反而會降低執行效率。
這種方式不建議使用。
請高手來幫忙看下下面的機器配置怎麼樣
主機板不怎麼樣華碩的低端實在不太好說做工確實垃圾 顯示卡也是垃圾那個 根本對不起那個效能 個人建議把主機板換成捷波 悍馬ha01 gt3 顯示卡換成迪蘭恆進 鐳姬殺手hd2600pro 黑鑽比較好 一般用可以了 主機板可以用映泰的tf 520a2 也是499 不過是超頻板 穩定性比華碩的這款要好的多...
幫忙翻譯下下面的寧波話
1非常硬2非常好3榍意舒服4任它去吧5怎麼辦啊?6有什麼關係?的意思7找岔的意思吼水 禍水的意思8一塌糊塗 9形容損失而惋惜的意思10大大咧咧的意思11得意的忘我的意思12魂靈出殼13各種聲音一起來,亂七八遭14括跌 相撲的意思,一般朋友開玩笑玩的時候會用到。 有一種方言叫 石骨鐵硬 像石骨一樣硬 ...
誰教我填下下面這英語題!!急用
maggie hi janice.are we still meeting meet this saturday?janice no,we aren t i completely forgot that i am going go to the tutorial class.see my time ...