鱼C论坛

 找回密码
 立即注册
查看: 166|回复: 4

大佬们,求带!!第十二讲课后习题

[复制链接]
发表于 2025-3-8 18:14:29 From FishC Mobile | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 爱吃菠萝包 于 2025-3-10 20:31 编辑

n=int(input("请输入三角形的层数:"))

i=1
while i<=n:
    j=0
    while j<n-i:
        print(" ",end="")
        j=j+1

    j=0
    while j<2*i-1:
        print("*",end="")
        j=j+1

    print("")
    i=i+1

上面我打的代码和问题一样嘛,怎么出来的效果是这样子的嘞?
请输入三角形的层数:10
         *
        **
       **
      **
     **
    **
   **
  **
**
**
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2025-3-8 18:15:16 | 显示全部楼层
看起来你正在尝试用Python创建一个程序来打印三角形的图形。让我帮你完成它,以下是一个简单的例子,使用while循环来打印三角形:
n = int(input("请输入三角形的层数:"))

i = 1
while i <= n:
    print(' ' * (n - i) + '*' * (2 * i - 1))
    i += 1

这个程序会根据用户输入的层数打印出一个等腰三角形。你可以在程序中观察如何用空格和星号组合来形成不同的层次。

如果你有其他问题,欢迎随时提问!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-3-8 20:34:18 | 显示全部楼层
本帖最后由 jackz007 于 2025-3-8 20:58 编辑
n = int(input("请输入三角形的层数:"))
i = 1
while i <= n :
    j = 0
    while j < n - i :
        print(" " , end = "")
        j = j + 1

    j = 0
    while j < 2 * i - 1 :
        print("*" , end = "")
        j = j + 1                # 此句写错,已经修正,修正前是 j = j = + 1

    print("")
    i = i + 1

    可以充分利用 Python 的优势加以简化:
n = int(input("请输入三角形的层数:"))
for i in range(n) :
    print(" " * (n - i - 1) + "*" * (2 * i + 1))       # 打印 n - i - 1 个空格,然后再打印 2 * i + 1 个 "*" 字符
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-3-9 12:41:24 | 显示全部楼层
# code 1
n = int(input("输入层数: "))
blank_space = (2 * n - 1) // 2
for i in range(1, n + 1):
    block = 2 * i - 1
    tmp_blank = blank_space
    while (tmp_blank):
        print(' ', end='')
        tmp_blank -= 1
    while (block):
        print('*', end='')
        block -= 1
    blank_space -= 1
    print()

# code 2
n = int(input("输入层数: "))
for i in range(1, n + 1):
    print(' ' * (n - i) + '*' * (2 * i - 1))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-3-10 14:46:54 | 显示全部楼层
观察代码中的循环部分,注意到第二个内部循环的j=j=+1,这应该是j +=1的笔误。这个错误导致j被错误地赋值,循环无法正确执行,从而影响星号的数量。另外,空格和星号的数量计算是否正确也需要检查。例如,外层循环控制层数,内层循环控制空格和星号的数量,但可能存在逻辑错误。

此外,代码中的循环条件是否正确?比如j<2*i-1可能没问题,但需要确保每行星号数量正确递增。空格部分n-i是否正确,确保每行前面的空格逐渐减少。综合来看,主要问题在于j=j=+1的语法错误,导致星号循环无法正确执行。修正这个错误后,再测试代码运行效果是否改善。

代码中第二个内层循环的递增语句存在语法错误,`j=j=+1` 应改为`j += 1` 。这导致星号打印次数计算错误,同时建议检查外层循环的终止条件是否准确。修正后可以正确输出逐层递增的星号三角形。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-2 02:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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