为什么我的代码无法运行?

问题描述:

#include<iostream> 
#include<set> 

using namespace std; 

main(){ 
    int n,m; 
    set<int> number; 
    int num; 
    int query[m]; 
    for(size_t i=0;i<n;i++){ 
     cin >> num; 
     number.insert(num); 
    } 
    for(size_t j=0;j<m;j++){ 
     cin >> query[j]; 
    } 
    for(int l=0;l<m;l++){ 
     for(auto k:number){ 
      if(number.find(query[l]-k)!=number.end()){ 
       cout << "YES" << endl; 
       break; 
      }else{ 
       cout << "NO" << endl; 
       break; 
      } 
     } 
    } } 

为什么我的代码无法运行? 当我编译和运行它。埃克说, how it says为什么我的代码无法运行?

我如何运行此代码。 对不起。我不擅长英语。 我使用谷歌翻译将我的语言转换为英语。

+1

Hmmmm,有人可能想将此情况报告给谷歌,他们没有在那里做了很好的工作... –

+1

米未初始化。查询[m]是未定义的行为。 n未初始化,for循环再次未定义beh –

+1

而且C++语言标准在任何情况下都不支持VLA(可变长度数组)。 –

#include <iostream> 
#include <set> 

using namespace std; 

int main(){ 
    int n,m; 
    set<int> number; 
    int num; 
    cin >> m >> n; 
    int query[m]; 
    for(size_t i=0;i<n;i++){ 
     cin >> num; 
     number.insert(num); 
    } 
    for(size_t j=0;j<m;j++){ 
     cin >> query[j]; 
    } 
    for(int l=0;l<m;l++){ 
     for(auto k:number){ 
      if(number.find(query[l]-k)!=number.end()){ 
       cout << "YES" << endl; 
       break; 
      } else { 
       cout << "NO" << endl; 
       break; 
      } 
     } 
    } 
} 

此代码分配数组“查询”,其中m(由用户插入的)堆叠在运行时上的元素。新的C++编译器提供了在运行时为本地变量分配堆栈本身内存的能力。

+0

需要解决的代码中有很多问题。 –

+1

'int query [m];'不会*用一个正常运行的C++编译器编译(除非'm'被定义为'const',而不是在这种情况下)。 –

您需要初始化n和m个变量。前两个循环将实际运行。

int main() 
    { 
     int n = 3; 
     int m = 3; 
     std::set<int> number; 
     int num; 
     int query[m]; 

     for(size_t i = 0; i < n; i++) 
     { 
      std::cin >> num; 
      number.insert(num); 
     } 

     for(size_t j = 0;j < m; j++) 
     { 
      std::cin >> query[j]; 
     } 

     for(int l=0;l<m;l++) 
     { 
      for(auto k : number) 
      { 
       if(number.find(query[l]-k)!=number.end()) 
       { 
        std::cout << "YES" << std::endl; 
        break; 
       } else 
       { 
        std::cout << "NO" << std::endl; 
        break; 
       } 
      } 
     } 
    } 

cpp.sh/8rwk