C++ 循环没有结束,我需要在代码中找到错误 #包括 使用名称空间std; int main(){ int64\n; int64_t m; int64_t Sum; cin>>n; 对于(int64_t i=0;i>a>>b; int64_t m=0; 而(m

C++ 循环没有结束,我需要在代码中找到错误 #包括 使用名称空间std; int main(){ int64\n; int64_t m; int64_t Sum; cin>>n; 对于(int64_t i=0;i>a>>b; int64_t m=0; 而(m,c++,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 =

问题在于这一部分:

#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;
}

在这里,
int64\u t y=0
将只执行一次,并且不会重置
y
,因此循环将终止。

此部分存在问题:

#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;
}

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

中,而
循环
y
固定为
0
,因此
m
永远不会更改(
m==a
),而且
b
永远不会更改,因此如果循环开始,它将永远不会停止,只需将
int64_t y=0;
移到循环之外。尝试为您的IDE找到一个视频教程,教您如何使用调试器逐步完成代码。此外,自动格式化代码,使其更易于阅读、理解和正确使用。作为这里的新用户,还需要在
循环中,
y
固定为
0
,因此
m
从不改变(
m==a
),而且
b
永远不会更改,因此如果循环开始,它将永远不会停止,只需将
int64_t y=0;
移到循环之外。尝试为您的IDE找到一个视频教程,教您如何使用调试器逐步完成代码。此外,自动格式化代码,使其更易于阅读、理解和正确使用。作为这里的新用户,还需要阅读。
int64_t y = 0;
while(m<=b){
     m=a+y;
     Sum +=m;
     y++;
 }