[問題] 計算機

看板C_and_CPP作者 (You're the one for me)時間12年前 (2011/10/10 17:33), 編輯推噓0(0020)
留言20則, 7人參與, 最新討論串1/1
int number1,number2,a,s,d,f; scanf("%d %d",&number1,&number2); a=number1+number2; s=number1-number2; d=number1*number2; f=number1/number2; if("%d+%d",&number1,&number2) { printf("%d\n",a); } else if("%d-%d",&number1,&number2) { printf("%d\n",s); } else if("%d*%d",&number1,&number2) { printf("%d\n",s); } else if("%d/%d",&number1,&number2) { printf("%d\n",f); } 加減可以成功執行,但是乘除的結果是一長串的數字, 想請問,這是哪個地方有問題? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.255.173.232

10/10 17:39, , 1F
你的 if 裡面做的事情是什麼?
10/10 17:39, 1F

10/10 17:58, , 2F
我覺得 應該是只有執行+的部份呀~~
10/10 17:58, 2F

10/10 18:01, , 3F
IF我是用來判別+-*/
10/10 18:01, 3F

10/10 18:01, , 4F
詭異=口=
10/10 18:01, 4F

10/10 18:03, , 5F
...有沒有這麼糟糕
10/10 18:03, 5F

10/10 18:04, , 6F
if有這用法?
10/10 18:04, 6F

10/10 18:08, , 7F
沒有這用法的意思是? 這樣無法判斷輸入的+-*/嗎?
10/10 18:08, 7F

10/10 18:10, , 8F
當初只是想說if可以設條件判斷,就用if了。
10/10 18:10, 8F

10/10 18:14, , 9F
應該和你想像的完全不一樣
10/10 18:14, 9F

10/10 18:14, , 10F
如果不是很熟c compiler的人大概也完全無法預測結果
10/10 18:14, 10F

10/10 18:16, , 11F
comma operator 有很難想像嗎? ._.
10/10 18:16, 11F

10/10 18:16, , 12F
scanf只接了兩個整數(而且應該還沒有拿到第二個)
10/10 18:16, 12F

10/10 18:16, , 13F
把中間的+-*/讀進來 再用if判斷吧
10/10 18:16, 13F

10/10 18:19, , 14F
通常會這樣寫 http://pastie.org/2670141
10/10 18:19, 14F

10/10 18:20, , 15F
還有 判斷符號就好了 不用來個"%d%c%d"
10/10 18:20, 15F

10/10 18:21, , 16F
好吧,comma也不會太難啦...只是我初學的時候不懂
10/10 18:21, 16F

10/10 18:25, , 17F
不過會寫成這樣真的很神奇,到底怎麼學的..
10/10 18:25, 17F

10/10 18:27, , 18F
自學中 看來挺糟糕的
10/10 18:27, 18F

10/10 18:29, , 19F
好好的想一下,看看書上的範例怎麼寫的囉
10/10 18:29, 19F

10/10 18:30, , 20F
理解中 謝謝各位
10/10 18:30, 20F
文章代碼(AID): #1EahlLkg (C_and_CPP)