如何解决这个数组值从哪里来?
所以我要在类再次开始之前练习编码,我想创建一个由10个整数组成的随机数组,并希望找出加在一起的两个数字等于或大于100。
当我运行以下代码时
function App() {
const [counter,setCounter] = React.useState(10);
const [startCountdown,setStartCountdown] = React.useState(false);
React.useEffect(() => {
if (startCountdown) {
const timer = counter > 0 && setInterval(() => setCounter(counter - 1),100);
if (counter === 0) {
// countdown is finished
setStartCountdown(false);
// update your redux state here
// updateReduxCounter(0);
}
return () => clearInterval(timer);
}
},[counter,startCountdown]);
return (
<div>
<div>Countdown: {counter}</div>
<button onClick={() => setStartCountdown(true)}>Start Countdown</button>
</div>
);
}
我注意到arr [9]的值等于一个数字,但是程序有另一个数字。 例如:创建的数组是 [42 68 35 1个 70 25 79 59 63 65]
但是我的输出显示arr [9]为9
42 + 68,超过100
42 + 35以下100
42 + 1以下100
42 + 70超过100
42 + 25以下(低于100)
42 + 79超过100
42 + 59(超过100)
42 + 63,超过100
42 + 9以下100
(我将只包含第一个循环,不再赘述)
我65岁的人去了哪里?
这9个来自哪里?
我写错了吗?
谢谢
解决方法
我注意到arr [9]的值等于一个数字,但是程序有另一个数字。
计算机的计数从0
开始,以小于总大小的数字结束。对于int arr[9]
- 第九个索引是
arr[8]
- 第一个索引为
arr[0]
- 第二个索引是
arr[1]
当您执行arr[9]
时,您正在越界(访问不在范围内的元素),这会导致不确定的行为。
因此,您的循环应在i < 9
处停止:
for(int i = 0; i < 9; i++) // i < 9 now vs i <=9
需要对第一个循环下方的循环进行相同的更改。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。