循环在C中没有正确递增

时间:2014-03-10 06:15:03

标签: c for-loop while-loop

您好我是C新手,我正在使用c99进行编译,而我只是制作了一个使用*来打印不同形状的程序。

我遇到一个问题,在这里做一个对角线是我正在使用带有嵌套for循环语句的while循环的代码。

如果我告诉它会有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 个答案:

答案 0 :(得分:0)

请尝试下面的代码..为您绘制对角线。

的变化:

  
      
  1. while (index<num){ While已修改条件。
  2.   
  3. for (int i=index-1; i >= 0; i--) for已从索引编辑为0。
  4.   
  5. num--;不需要。
  6.   
while (index<num){
        // makes spaces
        for (int i=index-1; i >= 0; i--)
        {
            printf(" ");
        }
        printf("*");
        printf("\n");
        //num--;
        index++;
    }