鱼C论坛

 找回密码
 立即注册
查看: 1877|回复: 7

求大神帮忙 | 怎么打出母金字塔!!!!!!

[复制链接]
发表于 2020-5-24 22:48:01 | 显示全部楼层 |阅读模式

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

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

x
题目内容:
要求用户从键盘“”输入一个大写字母“”,使用嵌套循环产生像下面这样的金字塔图案:

      A
    ABA
  ABCBA
ABCDCBA


程序运行结果示例1:
Please input a capital letter: D↙
_ _ _ _A
_ _ _ABA
_ _ABCBA
_ABCDCBA
程序运行结果示例2:
Please input a capital letter: F↙
_ _ _ _ _ _A
_ _ _ _ _ABA
_ _ _ _ABCBA
_ _ _ABCDCBA
_ _ABCDEDCBA
_ ABCDEFEDCBA
(说明:上面运行结果示例中,每行字母前面的下划线"_"代表屏幕上实际输出的是空格,最后一行前面有一个空格,倒数第二行有两个空格,以此类推。)

输入提示信息:"Please input a capital letter: "
输入格式: "%c"
输出格式:"%c"
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-24 23:11:13 | 显示全部楼层
本帖最后由 Twilight6 于 2020-5-25 07:53 编辑

用什么,是不是Python?
  1. ask = input('Please input a capital letter:')
  2. num = ord(ask) - 64

  3. for i1 in range(num):
  4.     print(' '*num,end='')
  5.     temp = ''
  6.     for i2 in range(65,66+i1):
  7.         temp += '%c'%i2
  8.         if i2 == ord('A')+i1 and i2 != 65:
  9.             for i3 in range(1,i1+1):
  10.                 temp += '%c'%(i2-i3)
  11.     print(temp)
  12.     num -= 1
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-24 23:24:34 | 显示全部楼层
一道数学题,请自行分析,金字塔的层数,该层其实位置索引,该层结束索引,总层数,这个变量之间的数学关系。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-25 00:27:48 | 显示全部楼层
Twilight6 发表于 2020-5-24 23:11
用什么,是不是Python?

测试的时候不小心按了个小写的d  还真别说...这金字塔蛮好看的
1234.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-25 14:39:40 | 显示全部楼层
Twilight6 发表于 2020-5-24 23:11
用什么,是不是Python?

是c语言哦
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-25 14:42:41 | 显示全部楼层

你发帖子发在新手乐园要说明好是什么语言啊,又不是C语言板块
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-27 01:06:22 | 显示全部楼层
Twilight6 发表于 2020-5-24 23:11
用什么,是不是Python?

用的是C语言哦
我的自己的思路是先排空格,再排左半边三角,再排右半边三角
#include <stdio.h>
void main()
{
        char input;
        int lm, l, s, d, u;
        printf("输入一个单词\n");
        scanf("%c", &input);
        lm = input-65+1;
        for( l=1 ; l<=lm ; l++ )
        {
                for( s=lm-l ; s>=1 ; s-- )
                        printf(" ");
                for( u=0 ; u<l ; u++ )
                        printf("%c",'A'+u);
                for( d=1 ; d<l ; d++ )
                        printf("%c", input-d);
                printf("\n");
        }
}
但是这个右半边的三角输出不出来
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-27 07:29:08 | 显示全部楼层
七七七七七七棋 发表于 2020-5-27 01:06
用的是C语言哦
我的自己的思路是先排空格,再排左半边三角,再排右半边三角
#include

我知道是C了。。。。你重复艾特我干嘛
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-30 04:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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