首页 > 其他分享 >北理工慕课4.7循环的综合应用讨论题2

北理工慕课4.7循环的综合应用讨论题2

时间:2022-11-24 21:13:14浏览次数:50  
标签:4.7 慕课 int 程序 北理工 讨论题

打印图形

以下图形用什么算法实现程序最简单?你会考虑哪些测试用例来保证程序的正确性和坚固性?请给出你的实现程序。(图中n=5)

 

这题颇有意思,本人代码如下供参考

#include<stdio.h>
void reverse(int start, int end);
int main()
{
    /*先读入一个数,n,认为0<n<10
    先打印上半部分,再打印下半部分
    上半部分:打印(n-1-i)*2个空格,然后开始打印数字
    数字的正逆向打印,有三种思路
    1.使用数组暂存数字
    2.通过恰当巧妙地循环
    3.使用递归
    下半部分同理*/
    int n;
    if (1 == scanf("%d", &n)) {
        int i, j;
        for (i = 0; i < n; i++) {
            for (j = 0; j < n - 1-i; j++)
                printf("  ");
            reverse(1, i + 1);
            putchar('\n');
        }
        for (i = 1; i < n; i++) {
            for(j=0;j<i;j++)
                printf("  ");
            reverse(1, n - i);
            putchar('\n');
        }
    }
    return 0;
}
void reverse(int start,int end)
{
    printf("%2d",start);
    if (start < end)
        reverse(start+1, end);
    if(start != end)
        printf("%2d", start);
}

 

标签:4.7,慕课,int,程序,北理工,讨论题
From: https://www.cnblogs.com/alien-han/p/16923340.html

相关文章