2017-02-14 7 views
-2
#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; 
      } 
     } 
    } } 

なぜ私のコードを実行できないのですか? 私はコンパイルして実行します。 Exeはそのことを言う how it saysなぜ私のコードを実行できないのですか?

私はこのコードをどのように実行できますか。 申し訳ありません。私は英語がうまくない。 google translateを使用して、自分の言語を英語に変換しました。

+1

うーむ、誰かがGoogleに報告したいかもしれないが、彼らはそこに非常に良い仕事をしていない... –

+1

メートルは初期化されていません。 query [m]は未定義の動作です。 nは初期化されていないため、ループは未定義です。beh –

+1

C++言語標準では、VLA(可変長配列)はサポートされていません。 –

答えて

-3
#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(ユーザーによって挿入された)要素で配列 "query"を割り当てます。新しいC++コンパイラは、実行時にスタック上のメモリをローカル変数に割り当てるためのこの機能を提供します。

+0

コード内にはさらに多くの問題があります。 –

+1

'int query [m];'は正しく機能するC++コンパイラでコンパイルされません( 'm'が' const'として定義されていない限り、この場合はそうではありません)。 –

-3

nとm変数を初期化する必要があります。最初の2つのループが実際に実行されます。

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

関連する問題