首页 > 解决方案 > 使用 Gdb 调试器正常退出进程

问题描述

我是 CPP 问题解决的初学者,在这个问题上遇到了麻烦:- Q)给定一个未排序的非负整数数组,找到一个添加到给定数字的连续子数组。我正在用 gdb 调试它并且没有得到任何输出,它显示进程退出通常较差 1.关于它为什么会发生的任何建议?

#include <stdio.h>
#include<iostream>
#include<vector>
using namespace std;
void subarray(vector<int> &a,int s,int n);
int main() {
    int t,n,s,x;
    cin>>t;
    vector<int> v;
    while(t)
    {
        cin>>n>>s;
        for(int i=0;i<n;i++)
        {  
            cin>>x;
            v.push_back(x);
        }
        subarray(v,s,n);
        t--;
        v.clear();
    }
    return 0;
}
void subarray(vector<int> &a,int s,int n)
{
    int j,sum,i=0;
    while(j<n&&i<n)
    {
        sum+=a[j];
        if(sum>s)
        {
            sum=sum-a[i];
            i++;
            j=i;
        }
        if(sum<s)
        {
          j++;  
        }
        else
        {
            cout<<i+1<<" "<<j+1<<endl;
            break;
        }
        if(j==n&&i<n)
        {
          i++;
          j=i;
        }
        if(j==n&&i==n)
        {
            cout<<-1<<endl;
            break;
        }
       
    }
    

}

标签: c++arraysdebugging

解决方案



推荐阅读