鱼C论坛

 找回密码
 立即注册
查看: 703|回复: 15

[已解决]怎么输出这个图形

[复制链接]
发表于 2020-3-19 20:10:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 一只程序猫 于 2020-3-20 10:31 编辑

具体如下:
        *
      ***
    *****
  *******
*********

最佳答案
2020-3-20 11:00:55
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int num;int i,j;
  5.         printf("请输入您想生成的三角形高度: ");
  6.         scanf("%d",&num);
  7.         for(i=1; i<=num; i++)
  8.         {
  9.                 for(j=1; j<2*num; j++)
  10.                 {
  11.                         if(j>num-i&&j<num+i)
  12.                                 printf("%c",'*');
  13.                         else
  14.                                 printf(" ");
  15.                 }
  16.                 printf("\n");
  17.         }
  18.         return 0;
  19. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-19 20:41:42 | 显示全部楼层
  1. #include<stdio.h>
  2. int main()
  3. {
  4. printf("\n\
  5.        *\n\
  6.       ***\n\
  7.      *****\n\
  8.     *******\n\
  9.    *********");
  10. return 0;
  11. }
复制代码

\n\是换行的意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-19 20:51:37 | 显示全部楼层
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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-20 09:17:32 | 显示全部楼层
余敏丰 发表于 2020-3-19 20:51
i=1
number=int(input('请输入一个奇数:'))
while i

你在c板块答题用Python?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-20 10:29:47 | 显示全部楼层
墨羽岚 发表于 2020-3-20 09:17
你在c板块答题用Python?

我说怎么有点奇怪
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-20 10:31:22 | 显示全部楼层

要用for之类的,不是这种
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-20 11:00:55 | 显示全部楼层    本楼为最佳答案   
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int num;int i,j;
  5.         printf("请输入您想生成的三角形高度: ");
  6.         scanf("%d",&num);
  7.         for(i=1; i<=num; i++)
  8.         {
  9.                 for(j=1; j<2*num; j++)
  10.                 {
  11.                         if(j>num-i&&j<num+i)
  12.                                 printf("%c",'*');
  13.                         else
  14.                                 printf(" ");
  15.                 }
  16.                 printf("\n");
  17.         }
  18.         return 0;
  19. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-3-20 11:02:54 | 显示全部楼层
一只程序猫 发表于 2020-3-20 10:31
要用for之类的,不是这种

代码发在楼上了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-20 11:09:53 | 显示全部楼层

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-20 11:11:56 | 显示全部楼层

请问一下这一段中的
  1. if(j>num-i&&j<num+i)
复制代码

为什么要这样写
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-20 11:17:15 | 显示全部楼层
一只程序猫 发表于 2020-3-20 11:11
请问一下这一段中的
为什么要这样写

在这段区域内打*号,其他地方打空格(C语言应该没有自动居中的功能)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-20 11:31:18 | 显示全部楼层
墨羽岚 发表于 2020-3-20 11:17
在这段区域内打*号,其他地方打空格(C语言应该没有自动居中的功能)
  1. if(j>num-i&&j<num+i)
复制代码

这里&&的前面看懂了不懂后面
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-20 11:41:58 | 显示全部楼层
一只程序猫 发表于 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这三处画*,前后都是空格;
...
以此类推就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-20 13:18:06 | 显示全部楼层
墨羽岚 发表于 2020-3-20 11:41
实际上你可以把整个图形看成是一个num*(2*num-1)的长方形,而程序就是在长方形num-i和num+i间(开区间) ...

谢谢,懂了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-21 23:03:56 | 显示全部楼层
墨羽岚 发表于 2020-3-20 09:17
你在c板块答题用Python?

串错门了,溜了溜了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-22 09:30:19 | 显示全部楼层
余敏丰 发表于 2020-3-21 23:03
串错门了,溜了溜了

哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 19:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表