作者ljhgc (是嚮往亦或逃避)
看板C_and_CPP
標題Re: [問題] 用goto寫奇數和
時間Thu Aug 5 14:11:23 2010
小弟我以前還蠻喜歡用goto的,雖然很多人都跟我說過不要用goto....
======================================================
int x = 0, sum = 0;
start:
printf("Please enter a int : ");
scanf("%d",&x);
if( x <= 0 )
goto end;
while( --x >= 0 )
{
if( x % 2 )
sum += x;
}
printf("odd sum is %d\n", sum );
sum = 0;
goto start;
end:;
======================================================
goto start 和 end 是個迴圈,只是我把他寫成goto
你要改的是while(--x >= 0)那一段
======================================================
真的開始工作在看code寫code的時候,goto是個很煩的東西...
※ 引述《dondon0419 (東東)》之銘言:
: 老師上課要我們用goto計算1到輸入數字內的所有奇數和
: 不過不包括輸入的那各奇數
: 像輸入3的話,奇數和是1(不包含3這各奇數)
: 輸入4的話.奇數和4
: 上課弄了很久還是跑不出來
: 所以想請教高手幫各忙
: {
: int x,sum=1;
: scanf("%d",&x);
: start:
: if ( x % 2 =1 )
: sum = sum + x;
: 寫到這邊就卡住了,不知道怎寫x讓他停止在加下去
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.120.37.166
※ 編輯: ljhgc 來自: 59.120.37.166 (08/05 14:16)
推 VictorTom:所以才會有說, goto盡量別用, 但是一用就是要用在最恰當 08/05 14:24
→ VictorTom:的地方, 這樣不知道是不是還會造成很煩的case....@_@" 08/05 14:24
→ peter0318:話說我同學說我們學校有個教授叫學生作業要用goto寫 08/05 14:25
→ peter0318:不能用for XD 08/05 14:26
→ xatier:但是有些時候用goto的確能省下不少麻煩, 例如跳出巢狀for的 08/05 15:58
→ xatier:時候, 用break只能跳出一層, goto就沒這個限制XD 08/05 15:59
→ loveme00835:層數少可以把旗標加到迴圈條件測試裡, 但是層數多意味 08/05 16:00
→ loveme00835:著你該用遞迴來改寫了... 08/05 16:01
推 JingX:有必要用goto嗎? 08/05 19:43
→ sorkayi:=這題用 do while 可以吧 08/06 09:27