2007年9月6日 星期四

C 程式設計作業三,選擇邏輯與迴圈應用:解題


/* C Programming, Project 3 */
/*
說明題目:這次作業是要求用文字畫一個平行四邊形或菱形的圖案,
且分實心與空心兩種,例如:你的程式是畫平行四邊形,
在輸入一個10和12的數字,
則在空心的設定時可以輸出一個平行四邊形如左下圖,
底為10,高為12。如果是菱形,
再輸入為11時則劃出對角線長度為11的值,如右下圖。
*/
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
int i, j, width, height, zo; //宣告變數

printf("請輸入 0 (空心) 或 1 (實心):");
scanf("%d", &zo);

if(zo != 0 && zo != 1 ) //判斷圖形是否為實心或是空心
{
printf("請輸入正確的數字!!\n"); //輸入結果錯誤所印出來的結果
system("pause");
return 0;
}

printf("請輸入平行四邊形的底:");
scanf("%d", &width);
printf("請輸入平行四邊形的高:");
scanf("%d", &height);

/*決定平行四邊形外的空白數*/
for(i=0; i<height; i++) //用迴圈方式設定平行四邊形的高
{
for(j=0; j<i; j++) //印出空白部份
{
printf(" ");
}
/*決定平行四邊形裡的圖案*/
for(j=0; j<width; j++) //用迴圈方式設定平行四邊形的底
{
if(zo == 0) //用if判斷是空心的話,所執行的部份
{
if(i == 0 || i == height-1) //第一列與最後一列印出 X
{
printf("x");
}
else if(j == 0 || j == width-1) //第一行與最後一行印出 X
{
printf("x");
}
else //其餘印出空白
{
printf(" ");
}
}
else if(zo == 1) // 用if判斷是實心的話,所要執行的部份
{
for(j=0; j<width; j++) //此為實心印出 X
{
printf("x");
}
}
}
printf("\n"); //換行
}
system("pause");
return 0;
}

作業三題目
回到首頁

沒有留言: