怎么输出这个图形
本帖最后由 一只程序猫 于 2020-3-20 10:31 编辑具体如下:
*
***
*****
*******
*********
#include<stdio.h>
int main()
{
printf("\n\
*\n\
***\n\
*****\n\
*******\n\
*********");
return 0;
}
\n\是换行的意思 i=1
number=int(input('请输入一个奇数:'))
while i<number and (number-i)%2==0:
str1='*'*i
if i==1:
print(str1.rjust(number-2))
else:
print(str1.center(number))
i=i+2 余敏丰 发表于 2020-3-19 20:51
i=1
number=int(input('请输入一个奇数:'))
while i
你在c板块答题用Python?{:10_327:} 墨羽岚 发表于 2020-3-20 09:17
你在c板块答题用Python?
我说怎么有点奇怪
墨羽岚 发表于 2020-3-19 20:41
\n\是换行的意思
要用for之类的,不是这种
#include <stdio.h>
int main()
{
int num;int i,j;
printf("请输入您想生成的三角形高度: ");
scanf("%d",&num);
for(i=1; i<=num; i++)
{
for(j=1; j<2*num; j++)
{
if(j>num-i&&j<num+i)
printf("%c",'*');
else
printf(" ");
}
printf("\n");
}
return 0;
}
一只程序猫 发表于 2020-3-20 10:31
要用for之类的,不是这种
代码发在楼上了 墨羽岚 发表于 2020-3-20 11:02
代码发在楼上了
谢谢
墨羽岚 发表于 2020-3-20 11:00
请问一下这一段中的if(j>num-i&&j<num+i)
为什么要这样写
一只程序猫 发表于 2020-3-20 11:11
请问一下这一段中的
为什么要这样写
在这段区域内打*号,其他地方打空格(C语言应该没有自动居中的功能) 墨羽岚 发表于 2020-3-20 11:17
在这段区域内打*号,其他地方打空格(C语言应该没有自动居中的功能)
if(j>num-i&&j<num+i)
这里&&的前面看懂了不懂后面 一只程序猫 发表于 2020-3-20 11:31
这里&&的前面看懂了不懂后面
实际上你可以把整个图形看成是一个num*(2*num-1)的长方形,而程序就是在长方形num-i和num+i间(开区间)打*,其他地方打空格。
比如咱输入num=5,
i=1时,就要在(4,6)(注意是开区间)中,也就是在j=5这里画个*,然后前后都是空格;
i=2时,就要在(3,7),也就是在j=4,5,6这三处画*,前后都是空格;
...
以此类推就行了 墨羽岚 发表于 2020-3-20 11:41
实际上你可以把整个图形看成是一个num*(2*num-1)的长方形,而程序就是在长方形num-i和num+i间(开区间) ...
谢谢,懂了 墨羽岚 发表于 2020-3-20 09:17
你在c板块答题用Python?
串错门了,溜了溜了 余敏丰 发表于 2020-3-21 23:03
串错门了,溜了溜了
哈哈{:10_256:}
页:
[1]