gpt4 book ai didi

c - 用一个循环画一个三角形(修订版)

转载 作者:太空宇宙 更新时间:2023-11-04 08:33:24 25 4
gpt4 key购买 nike

三角形应该是这样的

1
11
111
1111
11111
111111

行数由用户输入,然后转化为函数注意:没有数组,必须有一个循环(while或for),不能嵌套循环

我得到的最接近的是一个有 2 个循环的代码(但想不出如何用更少的循环来做到这一点)

int i,k;
for(i=1;i<=x;i++)
{
for(k=1;k<=i;k++)
{
printf("1");
}
printf("\n");
}

上面的问题是有人问的,但被标记为题外话我不知道为什么..?我想出了这个解决方案,告诉我它是否正确?

int i=1,k=1;
while (i<=x)
{
if(k<=i)
{
printf("1");
k++;
continue;
}
i++;
k=1;
printf("\n");
}

谢谢

最佳答案

你可以用递归代替循环(迭代),试试这个(用一个循环):

#include <stdio.h>

void draw(int depth)
{
int i;
if(depth <= 0) return;
draw(depth-1);
for(i = 0; i < depth; i++)
printf("1");
printf("\n");
}

int main()
{
draw(5);
return 0;
}

即使没有循环也可以做到

#include <stdio.h>

void draw_num_char(int num)
{
if(num <= 0) return;
printf("1");
draw_num_char(num-1);
}
void draw(int depth)
{
int i;
if(depth <= 0) return;
draw(depth-1);
draw_num_char(depth);
printf("\n");
}

int main()
{
draw(5);
return 0;
}

关于c - 用一个循环画一个三角形(修订版),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27295498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com