總網頁瀏覽量

2015年10月20日 星期二

[C/C++] Pyramid

 *迴圈與函式練習程式 (不需繳交) 金字塔列印
 成績: 0 / 倒扣: 0.1

請寫一個程式, 輸入一個整數 n, 輸出指定的 n 個金字塔型的圖樣

請注意:

    請運用函式來降低程式的複雜度, 使得設計更為直覺 (例如可以把列印 n 層金字塔裡的第 i 層設計成一個函式)n 的數值在 1 到 20 之間

輸入測試資料:

5↵

5 即為 n

輸出測試資料:

         x<
       x x x             x<
     x x x x x         x x x         x<
   x x x x x x x     x x x x x     x x x     x<
 x x x x x x x x x x x x x x x x x x x x x x x x x<
 
 
< 是我自己加上去的, 表示最上層x 後並不用有空格

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int main(void) {

 int a;
 cin >>a;
 if(a >= 1 && a <=20){
  for(int i = 0 ; i < a ; i++ ){
   for(int k = 0 ; k < a ; k++){
    for(int j = 1 ; j <= 2*(a-k)-1 ; j ++){
     if((a-k)+i>=a){
      if(j >= (a-k)-(i-k) && j <= (a-k)+(i-k)){
       printf(" x");
      }else{
       if(j <= (a-k)-(i-k)) {
        printf("  ");
       }else if (j >= (a-k)+(i-k) &&i!=k){
        printf("  ");
       }
      }
     }
    }
   }printf("\n");
  }
 }
    return 0;
}
 
 


沒有留言:

張貼留言