首页 > 解决方案 > 使用循环打印

问题描述

我使用的变量是“rightnumber”我似乎无法弄清楚为什么这个程序不工作。提供预期的输出图像。

const int limit = 5;

int main() {
    int row, spacing, leftnumber, rightnumber = 1;
    for (row = 1; row < limit + 1; row++) {
        for (spacing = 1; spacing < limit - row + 1; spacing++) {
            printf(" ");
        }
        for (leftnumber = 1; leftnumber < row + 1; leftnumber++) {
            printf("%d", leftnumber);
        }
        for (rightnumber = row; rightnumber == 0; rightnumber -= 1) {
            printf("%d", rightnumber);
        }
        printf("\n");
    }
    return 0;
}

我的输出:

    1
   12
  123
 1234
12345

我的预期输出:

    1
   232
  34543
 4567654
567898765

标签: cloopsprintf

解决方案


这将打印您想要的输出,您可以尝试识别输出中的模式并自己弄清楚。

#include<stdio.h>
const int limit = 5;
int main()
{
    int row, spacing, leftnumber,rightnumber=1;
    int last;
    for(row=1;row<limit+1;row++)
    {
        for(spacing=1;spacing<limit-row+1;spacing++)
        {
            printf(" ");

        }
        for(leftnumber=row;leftnumber<row+1;leftnumber++)
            {
                printf("%d",leftnumber);
            }
        for(rightnumber=row+1; rightnumber<2*row; rightnumber+=1)
        {
            printf("%d",rightnumber);
        }
        for(last=rightnumber-2; last >= row && last > 0; last--){
            printf("%d",last);
        }




        printf("\n");
    }
    return 0;
}

推荐阅读