gpt4 book ai didi

c - 在c中使所有行比其余行在内部一个空格

转载 作者:行者123 更新时间:2023-11-30 21:15:48 24 4
gpt4 key购买 nike

我有这段代码可以打印一个简单的正方形

#include <stdio.h>

int main()
{
int n, i, b;

printf("Enter number of rows: ");
scanf("%d",&n);

for(i = 1; i <= n; i++)
{
for (b = 1; b <= n + 1; b++)
{
printf("*");
}
printf("\n");
}
return 0;
}

我想做的是打印每一行,比第一行和最后一行多一个空格,如下所示:

对于 n = 3

 ****
****
****

对于 n = 7

   ********
********
*********
**********
*********
********
********

第一行和最后一行是固定的,但随着 n 的增加而增加,每隔一行内部多一个空格,但与前一行相比增加了一颗星

最佳答案

以下代码准确输出您所暗示的规则:

#include <stdio.h>

int main()
{
int n, i, b;

printf("Enter number of rows: ");
scanf("%d",&n);

// First part until half of N (1 --> N/2)
for(i = 1; i <= n / 2; i++) {
for (b = i; b <= n / 2; b++)
printf(" ");
if(i == 1)
for (b = 1; b <= n + i; b++)
printf("*");
else
for (b = 1; b <= n + i - 1; b++)
printf("*");
printf("\n");
}

// The line at half of N
for(i = 1; i <= n + (n / 2); i++)
printf("*");
printf("\n");

// Last part until N is reached (N/2 --> N)
for(i = 1; i <= n / 2; i++) {
for (b = 1; b <= i; b++)
printf(" ");
if(i == n/2)
for (b = 1; b <= n + 1; b++)
printf("*");
else
for (b = 1; b <= n + (n / 2) - i; b++)
printf("*");
printf("\n");
}

return 0;
}

结果如下:

对于 N = 3

 ****
****
****

对于 N = 7

   ********                                                                                                             
********
*********
**********
*********
********
********

关于c - 在c中使所有行比其余行在内部一个空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53145071/

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