作者fjf1980 (聽說 侯佩岑是豬頭)
看板C_and_CPP
標題[問題] if vs else if
時間Thu Nov 4 00:46:51 2010
我自己練習玩一個畫圖形,我要畫兩個菱形
以下是我的程式碼, 我在住解 // 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