PCDVD數位科技討論區

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)

saiz 2007-12-18 09:54 PM

只要把45-67之間的奇數加總?
那為什麼要偶數時total--呢??
判斷範圍的 就在判斷奇數裡面做就好了

Adsmt 2007-12-18 11:04 PM

不計其它部份,主體只要兩行就可以解決了決了。

for( i = 1; i <= 100; i++ )
total += (i <= 67?(i >= 45?(i & 1? i:0):0):0);

chrisdar 2007-12-18 11:22 PM

我想放大絕耶.....泛型&樣板

先定義一個物件他有奇偶性跟其值,創了100個物件,挑出偶數的殺掉,太大太小的殺掉

kyo12021 2007-12-18 11:30 PM

上樓大大這種感覺會有點亂拉(記得沒錯這個好像是三元運算子,認真來說還真的不常用)~~不過都能達到樓主的要求吧~手邊沒裝compile~對c有有基本的認知,覺得都能,不過條件(奇數; 大於45; 小於67)這個大大好像不太正確不過確容易懂(對於新手而言)小弟就來小小改正一下,大於45沒有包到45 ,所以要大於等於45才對,67同理...

Adsmt 2007-12-19 12:26 AM

引用:
作者chrisdar
我想放大絕耶.....泛型&樣板

先定義一個物件他有奇偶性跟其值,創了100個物件,挑出偶數的殺掉,太大太小的殺掉

這叫多此一舉吧?沒有必要為複雜而複雜。
程式重在簡潔和效率。

DED 2007-12-19 11:50 AM

引用:
作者kyo12021
上樓大大這種感覺會有點亂拉(記得沒錯這個好像是三元運算子,認真來說還真的不常用)~~不過都能達到樓主的要求吧~手邊沒裝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);}

Courage 2007-12-19 02:09 PM

引用:
作者DED
不知所云耶:(

這種條件式不常用?
大概是寫的不夠多吧
這很方便的啊

而這段程式中的精華在 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就能免則免...

bashilio 2007-12-19 02:26 PM

for(int total = 0, i = 1 ; i<=100 ; i++){
if(i >45 && i<67){
total += (i%2)?i:0;
}
}

Adsmt 2007-12-19 03:50 PM

引用:
作者Courage
何不 (i=1; i <= 100; i+=2)
當然i & 1也是很好啦...i % 2就能免則免...

題目是說執行 1 到 100, 這樣的話就犯規了...


所有的時間均為GMT +8。 現在的時間是10:21 PM.

vBulletin Version 3.0.1
powered_by_vbulletin 2026。