想在C中使用while创建菱形

时间:2014-03-11 17:55:58

标签: c++ c turbo-c++

我使用for循环创建了钻石,但我无法将其转换为While。

你可以帮我用While循环来实现同样的目标吗?我尝试了几次循环,但它正在运行无限时间。

#include<stdio.h>
#include<conio.h>

int main() {
    clrscr();
    int i, j, k;

    for(i=1;i<=2;i++) {
        for(j=i;j<5;j++) {
            printf(" ");
        }

        for(k=1;k<(i*2);k++){
            printf("*");
        }

        printf("\n");
    }

    for(i=3;i>=1;i--){
        for(j=5;j>i;j--) {
            printf(" ");
        }

        for(k=1;k<(i*2);k++) {
            printf("*");
        }
        printf("\n");
    }
    getch();
}

2 个答案:

答案 0 :(得分:1)

看看你的while循环实现的代码看看有什么问题会有所帮助,但是将for循环转换为while循环的一般解决方案是这样的:

for(i=1;i<=2;i++)
{ 
  /*your code*/ 
}

变为

i = 1;
while(i<=2)
{
  /*your code*/
  i++;
}

确保您的迭代器和递减器位于正确的位置。

答案 1 :(得分:0)

您可以尝试将初始化放在循环的前面,循环结束时的递增/递减,并保持条件不变。例如

for(k=1;k<(i*2);k++)
{
    printf("*");
}

转换为

k=1;
while(k<(i*2)){
    printf("*");
    k++;
}