首页 > 其他分享 >【图形】空心数字梯形*

【图形】空心数字梯形*

时间:2022-11-14 14:11:24浏览次数:61  
标签:arr ++ 64M 梯形 空心 测试用例 printf 图形 文本

输入行数 n 和首数字字符,在屏幕上输出由数字围起的高和下底宽度均 n 的空心梯形。 要求:输出的数字是循环的,即输出数字 9 后再输出的数字是 0。

输入:行数n 和首字符

输出:空心梯形

  测试输入 期待的输出 时间限制 内存限制 额外进程
测试用例 1 以文本方式显示

5 5↵

以文本方式显示
  1. 5 6 7 8 9 0 1 0 9 8 7 6 5↵
  2.   6                   6↵
  3.     7               7↵
  4.       8           8↵
  5.         9 0 1 0 9↵
1秒 64M 0
测试用例 2 以文本方式显示

1 0↵

以文本方式显示
  1. 0↵
1秒 64M 0
测试用例 3 以文本方式显示

2 9↵

以文本方式显示
  1. 9 0 0 9↵
  2.   0 0↵
1秒 64M 0
测试用例 4 以文本方式显示

3 1↵

以文本方式显示
  1. 1 2 3 4 3 2 1↵
  2.   2       2↵
  3.     3 4 3↵
1秒 64M 0
测试用例 5 以文本方式显示

6 6↵

以文本方式显示
  1. 6 7 8 9 0 1 2 3 3 2 1 0 9 8 7 6↵
  2.   7                         7↵
  3.     8                     8↵
  4.       9                 9↵
  5.         0             0↵
  6.           1 2 3 3 2 1↵
1秒 64M 0
测试用例 6 以文本方式显示

9 9↵

以文本方式显示
  1. 9 0 1 2 3 4 5 6 7 8 9 0 1 0 9 8 7 6 5 4 3 2 1 0 9↵
  2.   0                                           0↵
  3.     1                                       1↵
  4.       2                                   2↵
  5.         3                               3↵
  6.           4                           4↵
  7.             5                       5↵
  8.               6                   6↵
  9.                 7 8 9 0 1 0 9 8 7↵
1秒 64M 0
测试用例 7 以文本方式显示

12 0↵

以文本方式显示
  1. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0↵
  2.   1                                                             1↵
  3.     2                                                         2↵
  4.       3                                                     3↵
  5.         4                                                 4↵
  6.           5                                             5↵
  7.             6                                         6↵
  8.               7                                     7↵
  9.                 8                                 8↵
  10.                   9                             9↵
  11.                     0                         0↵
  12.                       1 2 3 4 5 6 6 5 4 3 2 1↵
1秒 64M 0
测试用例 8 以文本方式显示

3 9↵

以文本方式显示
  1. 9 0 1 2 1 0 9↵
  2.   0       0↵
  3.     1 2 1↵
1秒 64M 0

 

代码如下:

#define _CRT_SECURE_NO_WARNINGS 1    
#include <stdio.h>  
#include <stdbool.h>
int main(void)
{
    int n, counter;
    int i = 0, j = 0;
    scanf("%d %d", &n, &counter);
    int arr[150] = { 0 };

    if (n % 2 != 0) {
        for (i = 0; i < n-1+n/2+1; i++) {
            arr[i] = counter++;
            counter %= 10;
        }
        for (i = n - 1 + n / 2 + 1; i < 3 * n - 2; i++) {
            arr[i] = arr[3 * n - 3 - i];
        }
        //开始输出打印
        for (i = 0; i < n; i++) {
            if (i == 0) {
                for (j = 0; j < 3 * n - 2; j++)
                    printf("%d ", arr[j]);
                putchar('\n');
            }
            else if (i == n - 1) {
                for (j = 0; j < i; j++)
                    printf("  ");
                for (j = i; j < n - 1 + n; j++)
                    printf("%d ", arr[j]);
                putchar('\n');
            }
            else {
                for (j = 0; j < i; j++)
                    printf("  ");
                printf("%d ", arr[j]);
                for (j = i + 1; j < 3 * n - 3 - i; j++)
                    printf("  ");
                printf("%d ", arr[3 * n - 3 - i]);
                putchar('\n');
            }
        }        
    }
    else {
        for (i = 0; i < n-1+n/2; i++) {
            arr[i] = counter++;
            counter %= 10;
        }
        for (i = n - 1 + n / 2; i < 3 * n - 2; i++) {
            arr[i] = arr[3 * n - 3 - i];
        }
        //开始输出打印
        for (i = 0; i < n; i++) {
            if (i == 0) {
                for (j = 0; j < 3 * n - 2; j++)
                    printf("%d ", arr[j]);
                putchar('\n');
            }
            else if (i == n - 1) {
                for (j = 0; j < i; j++)
                    printf("  ");
                for (j = i; j < n - 1 + n; j++)
                    printf("%d ", arr[j]);
                putchar('\n');
            }
            else {
                for (j = 0; j < i; j++)
                    printf("  ");
                printf("%d ", arr[j]);
                for (j = i + 1; j < 3 * n - 3 - i; j++)
                    printf("  ");
                printf("%d ", arr[3 * n - 3 - i]);
                putchar('\n');
            }
        }

    }

    /*for (i = 0; i < 3 * n - 2; i++)
        printf("%d ", arr[i]);*/
    return 0;
}

 

标签:arr,++,64M,梯形,空心,测试用例,printf,图形,文本
From: https://www.cnblogs.com/alien-han/p/16888875.html

相关文章