鱼C论坛

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

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

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

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

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

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

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

最佳答案
2020-3-20 11:00:55
#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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-19 20:41:42 | 显示全部楼层
#include<stdio.h>
int main()
{
printf("\n\
       *\n\
      ***\n\
     *****\n\
    *******\n\
   *********");
return 0;
}
\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 | 显示全部楼层    本楼为最佳答案   
#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;
}
想知道小甲鱼最近在做啥?请访问 -> 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 | 显示全部楼层

请问一下这一段中的
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语言应该没有自动居中的功能)
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, 2025-1-15 17:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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