[問題] 跑不出我想要的

看板C_and_CPP (C/C++)作者 (期待的盼望)時間15年前 (2010/07/12 17:06), 編輯推噓4(407)
留言11則, 5人參與, 最新討論串1/1
#include<stdio.h> #include<stdlib.h> int main(void) { int i,j,p,num; do { printf("Input an odd integer:"); scanf("%d",&num); }while(num%2==0); for(i=1;i<=num;i++) { for(j=1;j<=2*i-1;j++) { if(2*i-1<=num) 如果判斷條件和輸入num為一樣的話 printf("*"); 則跳出跑到else else { for(p=num-2;p>=1;p--) 以輸入3為例,當i=3時,2*i-1=5 printf("*"); 之後會執行else裡的 } 然後num-2=1(因為輸入為3) } 則應該只會輸出一個*吧(?) printf("\n"); 那為什麼會跑出5個呢? } system("pause"); return 0; } 希望能跑出如下: 輸入3 跑出如下 * *** * ----------------------------- 輸入5 跑出如下 * *** ***** *** * -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.26.169.11

07/12 17:08, , 1F
連include都打錯了怎麼會跑出東西!!!!
07/12 17:08, 1F
那是後來打上的 = =

07/12 17:09, , 2F
我有時候打太快也會這樣 XD
07/12 17:09, 2F

07/12 17:14, , 3F
j的迴圈進了五次 所以跑5個吧
07/12 17:14, 3F
哦!!! 我懂了 ~~ 謝謝

07/12 17:16, , 4F
不過這個code可以寫得更簡單 如果你每行output都差兩顆星
07/12 17:16, 4F
恩..............我會思考看看XD ※ 編輯: a3567152 來自: 114.26.169.11 (07/12 17:26)

07/12 17:32, , 5F
/星 有前人的腳印
07/12 17:32, 5F

07/12 17:35, , 6F
不需要 else 那一塊, (2*i-1) 就是你「在第 i 行印出
07/12 17:35, 6F

07/12 17:35, , 7F
的星星數」, 在 case 5 的時候你需要把第4行當作是第2
07/12 17:35, 7F

07/12 17:36, , 8F
行、第5行當作第一行來印, 程式碼可以節省不少
07/12 17:36, 8F

07/12 17:51, , 9F
Input an even integer?
07/12 17:51, 9F
你看錯了(掩面) ※ 編輯: a3567152 來自: 114.26.169.11 (07/12 18:59)

07/12 19:19, , 10F
打錯就打錯,說人看錯是怎樣...
07/12 19:19, 10F

07/12 19:34, , 11F
樓上, 認真就輸了 (  ̄ c ̄)y▂ξ
07/12 19:34, 11F
文章代碼(AID): #1CEji2W2 (C_and_CPP)
文章代碼(AID): #1CEji2W2 (C_and_CPP)