循环没有结束,我需要在代码中找到错误

  • 本文关键字:代码 错误 结束 循环 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,它将在每次迭代中使新y等于 0。y++是无用的,因此m = a + y与永远不会改变m值的m = a + 0相同,布尔m <= b将永远为真。这样做:

int64_t y = 0;
while(m<=b){
m=a+y;
Sum +=m;
y++;
}

在这里,int64_t y = 0只会执行一次,y不会被重置,因此循环将终止。

最新更新