for循环的问题,尝试创建特定的模式

时间:2018-11-27 18:13:27

标签: c

我正在尝试制作V形。它几乎是完美的,但是我无法通过最后更改变量l和r来更改需要打印的空间量。我是编程新手,我的智慧到此为止。它应该在逻辑上起作用,对吧?

shape im trying to make

what i actually get

#include<stdio.h>

int main(){

int l=0,r=17,y=9,x=0,z=0;

for(z=0;z<y;z++){


    for(x=0;x<l;x++){
        printf(" "); //first space
    }
    printf("****");

    for(x=0;x<r;x++){
        printf(" "); //second space
    }
    printf("****");
    printf("\n");
    l+1;
    r-2;
}
}

3 个答案:

答案 0 :(得分:2)

线条

l+1;
r-2;

不更改l和r的值。

应该是

l = l + 1;
r = r - 2;

l += 1;
r -= 2;

答案 1 :(得分:0)

您即将解决此问题。您的错误在这里:

l+1;
r-2;

考虑一下当您使用+-之类的操作时会发生什么...结果将到达何处?

答案 2 :(得分:0)

l+1;
r-2;

都应该是:

l+=1;
r-=2;

在这里对脚本进行一些修改:

#include <stdio.h>
// v-shape
// gcc -Os -Wall -o 53505746 53505746.c

int main() {

    int l = 0;
    int r = 17;
    int y = 9;
    int x = 0;
    int z = 0;

    for (z=0; z<y; z++) {

        for (x=0; x<l; x++) {
            printf(" "); // first space
        }

        printf("****");

        for (x=0; x<r; x++) {
            printf(" "); // second space
        }

        printf("****");
        printf("\n");
        l += 1;
        r -= 2;

    }

    return 0;
}