gpt4 book ai didi

c - 打印空星号三角形 c

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

所以我查了一下,只发现了正常三角形的问题。这个有点棘手。

Given a N, your program should create an asterisk unfilled triangle with a N side size.

Example 1 
Inform N: 1
*

Example 2:
Inform N: 2
**
*
Example 3:
Inform N: 3
***
**
*
Example 4:
Inform N: 4
****
* *
**
*
Example 5:
Inform N: 5
*****
* *
* *
**
*

这是我的尝试,我只能低效地制作一个填充三角形

void q39(){
int n,i,b;
printf("Inform N: ");
scanf ("%i",&n);
for ( i = 0; i < n; ++i)
{
printf("*");
for ( b = 1; b < n; ++b)
{
if (i==0)
{
printf("*");
}
else if (i==1 && b>1)
{
printf("*");
}
else if (i==2 && b>2)
{
printf("*");
}
else if(i==3 && b>3){
printf("*");
}
else if(i==4 && b>4){
printf("*");
}
else if(i==5 && b>5){
printf("*");
}
else if(i==6 && b>6){
printf("*");
}
else if(i==7 && b>7){
printf("*");
}
else if (i==8 && b>8){
printf("*");
}
}
printf("\n");
}

}

最佳答案

你只需要认为第一行应该填充*
第二件事是每行的第一个字符应该是 *
最后一个字符也应该是*。之间需要填充空格。

int main()
{
int n=6;
for(int i=n-1;i>=0;i--) // using n-1, bcz loop is running upto 0
{
for(int j=0;j<=i;j++)
{
if(i==n-1 || j==0 ||i==j)
printf("*");
else
printf(" ");
}
printf("\n");
}
return 0;
}

条件if(i==n-1 || j==0 ||i==j)
这里使用了i==n-1,因此第一行应该用*填充。
j==0 用于使每行的第一个字符为*。每次新行开始时,即 j=0 时,它都会打印一个 * 字符。
i==j 这用于在 i==j 是我们运行循环的最后一个索引时生成最后一个字符 *。所以在最后一个索引处它将打印一个 *
对于所有其他值,它将打印空格,因为它将运行 else 条件。

输出

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

关于c - 打印空星号三角形 c,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32858331/

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