PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 其他群組 > 疑難雜症區
帳戶
密碼
 

  回應
 
主題工具
saiz
Golden Member
 
saiz的大頭照
 

加入日期: Aug 2004
您的住址: 北極星
文章: 2,613
只要把45-67之間的奇數加總?
那為什麼要偶數時total--呢??
判斷範圍的 就在判斷奇數裡面做就好了
     
      
__________________
良興卡號:0000200412313 盡情使用

推薦好站Android Forum中文討論區
舊 2007-12-18, 09:54 PM #11
回應時引用此文章
saiz離線中  
Adsmt
Golden Member
 
Adsmt的大頭照
 

加入日期: Feb 2004
您的住址: 從來處來
文章: 2,766
不計其它部份,主體只要兩行就可以解決了決了。

for( i = 1; i <= 100; i++ )
total += (i <= 67?(i >= 45?(i & 1? i:0):0):0);
 
舊 2007-12-18, 11:04 PM #12
回應時引用此文章
Adsmt離線中  
chrisdar
Power Member
 
chrisdar的大頭照
 

加入日期: Jan 2002
文章: 566
我想放大絕耶.....泛型&樣板

先定義一個物件他有奇偶性跟其值,創了100個物件,挑出偶數的殺掉,太大太小的殺掉
__________________
AMD 除頻表
舊 2007-12-18, 11:22 PM #13
回應時引用此文章
chrisdar離線中  
kyo12021
New Member
 

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

服役中&人生第一次用自己的錢組的:
CPU:E4500 2.2G
MB:GA-965P-DS3 (rev3.3)
RAM:Weblink DDR2 800 1G*2
VGA:LEADTEK WinFast PX8600 GT TDH
HDD:Seagate SATA2 250G/16M
PSU:SeaSonic 380W
CASE:i Cute QW07-4 G-BB
DVD±WR:PIONEER DVD-RW A10XLC
keyboard:Wintek
Mouse:Logitech G1
CRT Monitor:LEMEL
Wireless card:SMC 802.11g 108Mbps USB
OS:WIN XP PRO SP2
speakers:OZAKI 5.1
退役機&最初專屬機:
CPU:Intel P3E 600MHz
MB:ASUS P3V4X
RAM:不知名 256M
VGA:NVIDIA RIVA TNT2 Model64/PRO 32M
HD:Seagate 7200.7/8M 80G & 7200.10/16M 250G IDE
DVD:PIONEER DVD-RW A10XLC
LITE-ON DVD-ROM JLMS HD-XJ166S
POWER:不知名雜牌
CASE:不知名雜牌
keyboard:Wintek
Mouse:Logitech G1
CRT Monitor:LEMEL
Wireless card:SMC 802.11g 108Mbps USB
OS:WIN XP PRO SP2
二手貨
舊 2007-12-18, 11:30 PM #14
回應時引用此文章
kyo12021離線中  
Adsmt
Golden Member
 
Adsmt的大頭照
 

加入日期: Feb 2004
您的住址: 從來處來
文章: 2,766
引用:
作者chrisdar
我想放大絕耶.....泛型&樣板

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

這叫多此一舉吧?沒有必要為複雜而複雜。
程式重在簡潔和效率。
舊 2007-12-19, 12:26 AM #15
回應時引用此文章
Adsmt離線中  
DED
Master Member
 

加入日期: Jul 2004
文章: 2,429
引用:
作者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);}
舊 2007-12-19, 11:50 AM #16
回應時引用此文章
DED離線中  
Courage
Major Member
 
Courage的大頭照
 

加入日期: Jun 2003
您的住址: 新竹/台北
文章: 171
引用:
作者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就能免則免...
舊 2007-12-19, 02:09 PM #17
回應時引用此文章
Courage離線中  
bashilio
*停權中*
 

加入日期: Apr 2005
您的住址: 每條大街小巷、每個人的嘴裡…
文章: 13
for(int total = 0, i = 1 ; i<=100 ; i++){
if(i >45 && i<67){
total += (i%2)?i:0;
}
}
舊 2007-12-19, 02:26 PM #18
回應時引用此文章
bashilio離線中  
Adsmt
Golden Member
 
Adsmt的大頭照
 

加入日期: Feb 2004
您的住址: 從來處來
文章: 2,766
引用:
作者Courage
何不 (i=1; i <= 100; i+=2)
當然i & 1也是很好啦...i % 2就能免則免...

題目是說執行 1 到 100, 這樣的話就犯規了...
舊 2007-12-19, 03:50 PM #19
回應時引用此文章
Adsmt離線中  


    回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



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


vBulletin Version 3.0.1
powered_by_vbulletin 2026。