打印反Z模式

时间:2018-03-09 21:43:42

标签: c

如何打印反Z图案?

正常Z模式的代码:

int main() {
int n;

printf("Enter number of rows: ");
scanf("%d", &n);

for (int row = 0; row < n; row++) {
    for (int column = 0; column < n; column++) {
        if (row == 0 || row == n - 1 || column == n - 1 - row) {
            printf("* ");
        }
        else {
            printf("  ");
        }
    }
    printf("\n");
}
return 0;

上面代码的输出为n = 5:

* * * * *
      * 
    *  
  *
* * * * *

提前致谢。

3 个答案:

答案 0 :(得分:2)

这应该有效:

int main() {
    int n;
    printf("Enter number of rows: ");
    scanf("%d", &n);

    for (int row = 0; row < n; row++) {
        for (int column = n-1; column >=0; column--) {
            if (row == 0 || row == n - 1 || column == n - 1 - row) 
            {
                printf("* ");
            }
            else {
                printf("  ");
            }
        }
        printf("\n");
    }
    return 0;
}

答案 1 :(得分:0)

转发Z:

  1. 第0行= * * * * * * * *
  2. 第1行= N-2个空格,1 *
  3. 第2行= N-3个空格,1 *
  4. 第3行= N-4个空格,1 *
    ...
  5. 第N-4行= 3个空格,1 *
  6. 第N-3行= 2个空格,1 *
  7. 第N-2行= 1空白,1 *
  8. 第N-1行= * * * * * * * *
  9. 逆Z:

    1. 第0行= * * * * * * * *
    2. 第1行= 1空白,1 *
    3. 第2行= 2个空格,1 *
    4. 第3行= 3个空格,1 *
      ...
    5. 第N-4行= N-4个空白,1 *
    6. 第N-3行= N-3个空白,1 *
    7. 第N-2行= N-2个空格,1 *
    8. 第N-1行= * * * * * * * *
    9. 提示:如果您将* * * * * *输出与单个*输出分开,则应该更容易调整生成的代码以满足您的需求。

答案 2 :(得分:0)

这是我为Z模式制作的,相反,只需在if语句的末尾替换“ x + 1”

x = int(input("Enter size: "))

for i in range(0, x): #row
   for j in range(0, x): #columns
         if (i == 0 or i == x-1) or i+j==x-1:  #determines whether to print "X" or ""
               print("X", end="")
         else:
               print(" ", end="")
   print()