gpt4 book ai didi

c - C 中的数字金字塔

转载 作者:行者123 更新时间:2023-11-30 18:27:06 25 4
gpt4 key购买 nike

练习:编写一个程序,读取小于 100 的自然数 n 并绘制示例输出格式的金字塔,每个金字塔有 n 行 输出 n = 11:

01
02 02
03 03 03
04 04 04 04
05 05 05 05 05
06 06 06 06 06 06
07 07 07 07 07 07 07
08 08 08 08 08 08 08 08
09 09 09 09 09 09 09 09 09
10 10 10 10 10 10 10 10 10 10
11 11 11 11 11 11 11 11 11 11 11
01
01 02
01 02 03
01 02 03 04
01 02 03 04 05
01 02 03 04 05 06
01 02 03 04 05 06 07
01 02 03 04 05 06 07 08
01 02 03 04 05 06 07 08 09
01 02 03 04 05 06 07 08 09 10
01 02 03 04 05 06 07 08 09 10 11

代码:

#include <stdio.h>

int main()
{
int i, j,n;
scanf("%d",&n);
for(i = 0; i < n; i++)
{
for(j = 0; j <= i; j++)
{
if(i + 1 < 10)
printf("0%d ", i+1);
else if(i + 1 >= 10)
printf("%d ", i+1);
}
printf("\n");
}
printf("\n");

for(i = 0; i < n; i++)
{
for(j = 0; j <= i; j++)
{
if(j + 1 < 10)
printf("0%d ", j+1);
else if(j + 1 >= 10)
printf("%d ", j+1);
}
printf("\n");
}
return 0;
}

我的代码收到来自在线判断的“演示错误”,可能是因为每行的最后一个数字后面有一个空格。

有什么解决办法吗?

我知道我已经发布了类似的问题,但我认为我没有完全理解该解决方案。

最佳答案

打印两个金字塔的更短版本:

#include <stdio.h>

void pyramid1(int n)
{
for(int i=1; i<=n; ++i) {
for(int j=0; j<i; ++j)
printf("%s%02d", j? " " : "", i);
printf("\n");
}
}

void pyramid2(int n)
{
for(int i=1; i<=n; ++i) {
for(int j=1; j<=i; ++j)
printf("%s%02d", j>1? " " : "", j);
printf("\n");
}
}


int main(void) {
int n;
scanf("%d",&n);
pyramid1(n);
printf("\n\n");
pyramid2(n);

return 0;
}

输出

(n==5)

Success #stdin #stdout 0s 4336KB
01
02 02
03 03 03
04 04 04 04
05 05 05 05 05


01
01 02
01 02 03
01 02 03 04
01 02 03 04 05

关于c - C 中的数字金字塔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59710201/

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