![]() |
PCDVD數位科技討論區
(https://www.pcdvd.com.tw/index.php)
- 疑難雜症區
(https://www.pcdvd.com.tw/forumdisplay.php?f=34)
- - C++問題,寫出1到100的迴圈;且只顯示45~67的奇數?
(https://www.pcdvd.com.tw/showthread.php?t=763533)
|
|---|
只要把45-67之間的奇數加總?
那為什麼要偶數時total--呢?? 判斷範圍的 就在判斷奇數裡面做就好了 |
不計其它部份,主體只要兩行就可以解決了決了。
for( i = 1; i <= 100; i++ ) total += (i <= 67?(i >= 45?(i & 1? i:0):0):0); |
我想放大絕耶.....泛型&樣板
先定義一個物件他有奇偶性跟其值,創了100個物件,挑出偶數的殺掉,太大太小的殺掉 |
上樓大大這種感覺會有點亂拉(記得沒錯這個好像是三元運算子,認真來說還真的不常用)~~不過都能達到樓主的要求吧~手邊沒裝compile~對c有有基本的認知,覺得都能,不過條件(奇數; 大於45; 小於67)這個大大好像不太正確不過確容易懂(對於新手而言)小弟就來小小改正一下,大於45沒有包到45 ,所以要大於等於45才對,67同理...
|
引用:
這叫多此一舉吧?沒有必要為複雜而複雜。 程式重在簡潔和效率。 |
引用:
不知所云耶:( 這種條件式不常用? 大概是寫的不夠多吧 這很方便的啊 而這段程式中的精華在 i&1 這是超要求效率的寫法耶 不過包太緊的缺點就是...要做一些有的沒有的處理很麻煩 完整+印 int i,j,total=0; for( i = 1; i <= 100; i++ ){ total += (i <= 67?(i >= 45?(i & 1? j=i:0):0):0); if(i==j) printf("%d,Sum=%d\n",i,total);} |
引用:
何不 (i=1; i <= 100; i+=2) 當然i & 1也是很好啦...i % 2就能免則免... |
for(int total = 0, i = 1 ; i<=100 ; i++){
if(i >45 && i<67){ total += (i%2)?i:0; } } |
引用:
題目是說執行 1 到 100, 這樣的話就犯規了... |
| 所有的時間均為GMT +8。 現在的時間是10:21 PM. |
vBulletin Version 3.0.1
powered_by_vbulletin 2026。