作业帮 > 综合 > 作业

C 语言 空心梯形 输入行数 n 值和首数字字符,在屏幕上输出由数字围起的高和下底宽度均 n 的空心梯形.

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/15 14:18:36
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 的空心梯形.
#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);}输出结果: