循环在C中不能正确递增



你好,我是C的新手,我使用c99来编译,我只是制作一个使用*打印不同形状的程序。

我有一个问题,使对角线这里是代码我使用一个while循环与一个嵌套的for循环内的开关语句。

如果我告诉它会有5 *,我得到3,如果我给它数字7,我得到4。间距工作正确,但它没有完成循环。

任何帮助将是伟大的!

case 'd':
    printf("Size: ");
    scanf("%d", &num);
    index =0;
    while (index<=num){
// makes spaces
    for (int i=0; i<num-1; i++){
            printf(" ");
    }
    printf("*");
    printf("n");
    num--;
    index++;
    }             
    break;

输入尺寸:5输出:***

试试下面的代码。应该为你画对角线。

变化:

  1. while (index<num){ While条件编辑。
  2. for (int i=index-1; i >= 0; i--) for从索引编辑到0.
  3. num -;不是必需的。
while (index<num){
        // makes spaces
        for (int i=index-1; i >= 0; i--)
        {
            printf(" ");
        }
        printf("*");
        printf("n");
        //num--;
        index++;
    } 

相关内容

  • 没有找到相关文章

最新更新