|
发表于 2023-4-1 16:50:10
|
显示全部楼层
代码中的问题出现在第 15 行,具体原因如下:
1. 在代码中,从输入的 a 中得到的是字符串类型,而不是整数类型,需要将其转换为整数类型才能进行数值计算。
2. 在代码中,判断 nums[i] + nums[j] 是否等于目标整数 target 的方式是错误的,应该是 nums[i] + nums[j] == int(target)。
3. 在代码中,如果找到了满足条件的值,应该直接打印结果并退出循环,而不是每次循环都打印一次。
修改后的代码如下所示:
- nums = []
- isinput = True
- while isinput == True:
- a = input('请录入一个整数(输入STOP结束):')
- if a != 'STOP':
- nums.append(int(a))
- else:
- isinput = False
- target = input('请输入目标整数:')
- n = len(nums)
- found = False
- for i in range(n):
- for j in range(i+1,n):
- if nums[i] + nums[j] == int(target):
- print([i,j])
- found = True
- break
- if found:
- break
- if not found:
- print('没找到')
复制代码
修改后的代码中,首先将输入的字符串类型的整数转换为了整数类型,然后修改了判断条件,最后添加了一个 found 变量,用于标记是否找到了符合条件的值,如果找到了则直接退出循环并打印结果,否则在循环结束后打印 '没找到'。 |
|