鱼C论坛

 找回密码
 立即注册
查看: 1121|回复: 1

程序执行不了是为什么呀

[复制链接]
发表于 2023-12-18 16:56:39 | 显示全部楼层 |阅读模式

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

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

x
nums=[]
a=input('请输入一个整数(输入STOP结束):')
while a!='STOP':
    nums.append(int(a))
    a=input('请输入一个整数(输入STOP结束):')
else:
    target=input('请录入目标整数:')

n=len(nums)
i=0
j=i+1
if nums+nums[i+j]==target:
                print('[',i,',',i+j,']')
i=i+1

想问一下这个程序为什么进行不下去了啊。就只能进行到‘请输入目标整数’那里

本帖被以下淘专辑推荐:

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

使用道具 举报

发表于 2023-12-18 16:57:02 | 显示全部楼层
在你的代码中,有几个地方出现了错误。

首先,你没有给变量 "nums" 赋初值。在程序开始之前,你需要添加一行代码来创建一个空列表:
nums = []
其次,你在比较 `nums+nums` 和目标整数时使用的是加法操作符 `+`,这是错误的。如果你想检查列表中的两个元素之和是否等于目标整数,你需要遍历列表的所有可能组合,然后进行比较。可以使用嵌套循环来实现:
found = Falsefor i in range(n):    for j in range(i+1, n):        if nums[i] + nums[j] == target:            found = True            breakif found:    print('存在两个数的和等于目标整数')else:    print('不存在两个数的和等于目标整数')
最后,你的循环逻辑也有一些问题。请注意,你使用的是 `while` 循环,而不是 `for` 循环。因此,在循环结束后,`i` 的值并没有增加,导致代码进入无限循环。

修复了上述问题之后,你的完整代码应该如下所示:
nums = []a = input('请输入一个整数(输入STOP结束):')while a != 'STOP':    nums.append(int(a))    a = input('请输入一个整数(输入STOP结束):')target = int(input('请录入目标整数:'))n = len(nums)found = Falsefor i in range(n):    for j in range(i+1, n):        if nums[i] + nums[j] == target:            found = True            breakif found:    print('存在两个数的和等于目标整数')else:    print('不存在两个数的和等于目标整数')
希望能帮到你!

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 23:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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