看板 C_and_CPP 關於我們 聯絡資訊
我自己練習玩一個畫圖形,我要畫兩個菱形 以下是我的程式碼, 我在住解 // this line的地方如果有else if... 就可以正確畫出兩個菱形,如果沒有else, 只有if.... 圖形就錯誤,可是我跟上面一個if的區域沒有重疊,為何會錯誤 請教高手!! 感謝 (用ubuntu,不好選字有錯字請見諒) #include <stdio.h> #include <stdlib.h> #include <iostream> using namespace std; #define size 11 // define 的後面不能加上 ; int main(int argc, char *argv[]) { int mid = (size+1)/2; // if size=31, mid=16 for(int i=1;i<=size;i++) { printf("%2d ",i); for(int j=1;j<=2*size;j++) { if(i<=mid) { if(j>=mid-i+1 && j<=mid+i-1) cout << "*"; else if(j>=mid+size-i+1 && j<=mid+size+i-1) cout << "*"; // this line ,withous else coz error !! else cout << " "; } else { int k=mid*2-i; if(j>=mid-k+1 && j<=mid+k-1) cout << "*"; else if(j>=mid+size-k+1 && j<=mid+size+k-1) cout << "*"; // this line else cout << " "; } } cout << endl;} } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.85.133.185
uranusjr:因為你後面那個 else 在兩種寫法的作用會不一樣 11/04 00:50
loveme00835:兩層 for 我就 game over 了...Orz 11/04 00:50
stupid0319:呃else if改成if的話就變成"兩組"if了吧? 11/04 00:50
stupid0319:看你想寫什麼去決定怎麼寫,而不是寫了再想說怎麼會錯? 11/04 00:52
fjf1980:但是兩個if的範圍是不一樣的呀 11/04 00:52
stupid0319:最後那個 else 的東西跑出來了啦 11/04 00:53
fjf1980:喔 本來有畫,後來被最後的else 蓋掉了, 我耍笨了 >< 11/04 00:55
fjf1980:感謝大家 11/04 00:55
hilorrk:love大得了不能看到多層迴圈的病XD 11/04 00:56
fjf1980:只有兩層for loop.....還沒很多拉 (汗) 11/04 00:58