c++ - 循环没有结束,我需要在代码中找到错误
问题描述
#include<iostream>
using namespace std;
int main(){
int64_t n;
int64_t m;
int64_t Sum;
cin >> n;
for(int64_t i=0; i<n-1; i++){
int64_t a, b;
cin >> a >> b;
int64_t m = 0;
while(m <= b){
int64_t y = 0;
m = a + y;
Sum += m;
y++;
}
}
cout << Sum;
}
当我在编译器中运行上述代码时,循环没有结束,我一直在输入值。
解决方案
问题出在这部分:
while(m<=b){
int64_t y=0;
m=a+y;
Sum +=m;
y++;
}
在每次迭代中int64_t y = 0
,都会使 new等于 0。是无用的,因此将与永远不会改变的值相同,并且布尔值将始终为真。做这个:y
y++
m = a + y
m = a + 0
m
m <= b
int64_t y = 0;
while(m<=b){
m=a+y;
Sum +=m;
y++;
}
在这里,int64_t y = 0
只会执行一次并且y
不会被重置,因此循环将终止。
推荐阅读
- c# - Error when calling Form.Show() a second time
- java - MongoClient 关闭方法已弃用。如何替换它以避免不推荐使用的方法?
- java - CardView item truncated because of its length
- reactjs - 从生产构建中剥离的 React Styled Components
- android - white black screen while loading unity in android for 2-5 seconds
- javascript - 无法读取未定义角度 7 的属性
- visual-studio - Visual Studio Build doesn't start in one time click or F5 press
- python - python命名空间与包:使包成为默认命名空间
- r - 有一定数量的参赛队伍的百分比
- datediff - Calculating age using date of birth stored in the database