Dilnaz 发表于 2023-12-18 16:56:39

程序执行不了是为什么呀

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==target:
                print('[',i,',',i+j,']')
i=i+1
想问一下这个程序为什么进行不下去了啊。就只能进行到‘请输入目标整数’那里{:10_266:}

FishC 发表于 2023-12-18 16:57:02

在你的代码中,有几个地方出现了错误。

首先,你没有给变量 "nums" 赋初值。在程序开始之前,你需要添加一行代码来创建一个空列表:

nums = []

其次,你在比较 `nums+nums` 和目标整数时使用的是加法操作符 `+`,这是错误的。如果你想检查列表中的两个元素之和是否等于目标整数,你需要遍历列表的所有可能组合,然后进行比较。可以使用嵌套循环来实现:

found = False

for i in range(n):
    for j in range(i+1, n):
      if nums + nums == target:
            found = True
            break

if 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 = False

for i in range(n):
    for j in range(i+1, n):
      if nums + nums == target:
            found = True
            break

if found:
    print('存在两个数的和等于目标整数')
else:
    print('不存在两个数的和等于目标整数')

希望能帮到你!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 程序执行不了是为什么呀