我使用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();
}
答案 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++;
}