C 语言 空心梯形 输入行数 n 值和首数字字符,在屏幕上输出由数字围起的高和下底宽度均 n 的空心梯形.要求 :输出的数字是循环的,即输出数字 9 后再输出的数字是 0.输入 5 5↵输出 5 6 7 8
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/07 22:50:37
C 语言 空心梯形 输入行数 n 值和首数字字符,在屏幕上输出由数字围起的高和下底宽度均 n 的空心梯形.要求 :输出的数字是循环的,即输出数字 9 后再输出的数字是 0.输入 5 5↵输出 5 6 7 8
C 语言 空心梯形 输入行数 n 值和首数字字符,在屏幕上输出由数字围起的高和下底宽度均 n 的空心梯形.
要求 :输出的数字是循环的,即输出数字 9 后再输出的数字是 0.
输入 5 5↵
输出
5 6 7 8 9 0 1 0 9 8 7 6 5
6 6
7 7
8 8
9 0 1 0 9↵
C 语言 空心梯形 输入行数 n 值和首数字字符,在屏幕上输出由数字围起的高和下底宽度均 n 的空心梯形.要求 :输出的数字是循环的,即输出数字 9 后再输出的数字是 0.输入 5 5↵输出 5 6 7 8
#include "stdio.h"
/* 画rows行首数字为start的实心梯形 */
void drawHollowEchelon(int rows, int start)
{
int i, j, k;
int value;
/* 输出上底 */
for(i=0; i<=(3*rows-3)/2; i++)
printf("%d", (start+i)%10);
for(i=0; i<=(3*rows-4)/2; i++)
printf("%d", (start+(3*rows-3)/2+(rows%2==0?0:-1)-i+10)%10);
printf("\n");
for(i=0; i<rows-2; i++)
{
for(j=0; j<=i; j++)
printf("%c", ' ');
printf("%d", (start+i+1)%10);
for(j=0; j<3*rows-2*i-6; j++)
printf("%c", ' ');
printf("%d\n", (start+i+1)%10);
}
/* 输出下底 */
for(i=0; i<rows-1; i++)
printf("%c", ' ');
for(i=0; i<(rows+1)/2; i++)
printf("%d", (start+rows-1+i)%10);
for(i=0; i<rows/2; i++)
/*printf("%d", (start+(3*rows-3)/2-i+10)%10); */
printf("%d", (start+(3*rows-3)/2+(rows%2==0?0:-1)-i+10)%10);
printf("\n");
}
void main()
{
int rows; /* [1, 24], 超过24行时一屏无法全部显示 */
int start; /* [0, 9] */
do
{
printf("input rows and start figure (such as 5 5) : ");
scanf("%d%d", &rows, &start);
}while(rows<0 || rows>24 || start<0 || start>9);
drawHollowEchelon(rows, start);
}
输出结果: