c++在一个长度为n(n<1000)的整数序列中,判断是否存在某两个元素之和为k。

#include<iostream>
using namespace std;
int main()
{
int n,k,i;
cin>>n>>k;
int a[i];
for(i=0;i<n;i++)
{
cin>>a[i];
}
int j=0;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{

if(k==a[i]+a[j])
{
cout<<"yes"<<endl;
return 0;
}
}
}
cout<<"no"<<endl;
}
上交后系统显示runtime error

#include<iostream>

using namespace std;

int main()

{

    int n,k,i;

cout<<"请输入数组元素个数与k值:"<<endl;

    cin>>n>>k;

    int a[1000];//整型数组定义要指明大小

    for(i=0;i<n;i++)

    {

      cin>>a[i];

    }

    int j=0;

    for(i=0;i<n;i++) 

    {

                     for(j=0;j<n;j++)

                     {


                         if(k==a[i]+a[j]) 

                         {

                                  cout<<"yes"<<endl;

                                  return 0;

                         }

                     }

     }

     cout<<"no"<<endl;   

}

运行结果:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-21
数组的大小没确定吧,把int a[i]改为int a[1000]、cout<<"no"<<endl; 后加个return 0;试试
第2个回答  2013-09-21
int a[i];

错了,你这里应该定义一个数组
int *a = new int[n]
相似回答