空心数字梯形

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

输入:行数n 和首字符

输出:空心梯形

测试输入期待的输出时间限制内存限制额外进程
测试用例 1以文本方式显示
  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秒64M0
测试用例 2以文本方式显示
  1. 1 0↵
以文本方式显示
  1. 0↵
1秒64M0
测试用例 3以文本方式显示
  1. 2 9↵
以文本方式显示
  1. 9 0 0 9↵
  2.   0 0↵
1秒64M0
测试用例 4以文本方式显示
  1. 3 1↵
以文本方式显示
  1. 1 2 3 4 3 2 1↵
  2.   2       2↵
  3.     3 4 3↵
1秒64M0
测试用例 5以文本方式显示
  1. 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秒64M0
测试用例 6以文本方式显示
  1. 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秒64M0
测试用例 7以文本方式显示
  1. 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秒64M0
测试用例 8以文本方式显示
  1. 3 9↵
以文本方式显示
  1. 9 0 1 2 1 0 9↵
  2.   0       0↵
  3.     1 2 1↵
1秒64M

0

#include <stdio.h>

int main() {
	int m, num, i = 1, j = 1, n;
	scanf("%d %d", &m, &num);
	n = num;
	if (m == 1)
		printf("%-1d\n", num);
	else {
		if (m % 2 == 0) {
			for (j = 1; j <= (3 * m - 2) / 2; j++) {
				printf("%-2d", n);
				n++;
				if (n > 9)
					n = 0;
			}
			if (n == 0)
				n = 9;
			else
				n = n - 1;
			for (j = (3 * m - 2) / 2 + 1; j <= 3 * m - 2; j++) {
				if (j == 3 * m - 2)
					printf("%-1d\n", n);
				else
					printf("%-2d", n);
				n--;
				if (n < 0)
					n = 9;
			}
		} else {
			for (j = 1; j <= (3 * m - 1) / 2; j++) {
				printf("%-2d", n);
				n++;
				if (n > 9)
					n = 0;
			}
			if (n == 0)
				n = 9;
			else
				n = n - 2;
			for (j = (3 * m - 1) / 2 + 1; j <= 3 * m - 2; j++) {
				if (j == 3 * m - 2)
					printf("%-1d\n", n);
				else
					printf("%-2d", n);
				n--;
				if (n < 0)
					n = 9;
			}
		}
		n = num;
		if (m >= 2) {
			for (i = 2; i < m; i++) {
				n++;
				if (n > 9)
					n = 0;
				for (j = 1; j <= 3 * m - 1 - i; j++) {
					if (i > j || i < j && j < 3 * m - 1 - i)
						printf("  ");
					if (i == j)
						printf("%-2d", n);
					if (j == 3 * m - 1 - i)
						printf("%-1d\n", n);
				}
			}
		}
		n++;
		if (n > 9)
			n = 0;
		if (m % 2 == 0) {
			for (j = 1; j <= (3 * m - 2) / 2; j++) {
				if (j < i)
					printf("  ");
				if (j >= i) {
					printf("%-2d", n);
					n++;
					if (n > 9)
						n = 0;
				}

			}
			if (n == 0)
				n = 9;
			else
				n = n - 1;
			for (j = (3 * m - 2) / 2 + 1; j <= 3 * m - 1 - i; j++) {
				if (j == 3 * m - 1 - i)
					printf("%-1d\n", n);
				else
					printf("%-2d", n);
				n--;
				if (n < 0)
					n = 9;
			}
		}
		if (m % 2 != 0) {
			for (j = 1; j <= (3 * m - 1) / 2; j++) {
				if (j < i)
					printf("  ");
				if (j >= i) {
					printf("%-2d", n);
					n++;
					if (n > 9)
						n = 0;
				}
			}
			if (n == 0)
				n = 9;
			else
				n = n - 2;
			for (j = (3 * m - 1) / 2 + 1; j <= 3 * m - 1 - i; j++) {
				if (j == 3 * m - 1 - i)
					printf("%-1d\n", n);
				else
					printf("%-2d", n);
				n--;
				if (n < 0)
					n = 9;
			}
		}
	}
	return 0;
}

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值