2017-01-31 24 views
-10

したがって、私はhakerrankのコーディングの問題に悩まされています。この問題は、次のように可変サイズの配列

#include<stdio.h> 
#include<stdlib.h> 
using namespace std; 
main() 
{ 
    int n, q; 
    scanf("%d %d", &n, &q); 
    int **a = new int*[n]; 
    int k; 
    for (int i = 0; i<n; i++) 
    { 
     scanf("%d", &k); 
     int *c = new int[k]; 
     for (int j = 0; j<k; j++) 
     { 
      scanf("%d", &c[i]); 
     } 
     a[i] = c; 
    } 
    int s, f, *z; 
    for (int i = 0; i<q; i++) 
    { 
     scanf("%d %d", &s, &f); 
     z = a[s]; 
     printf("%d\n", z[f]); 
    } 
} 

、私はそれを実行するたびに行く、それは私を助けるvalues.pleaseゴミを示したリンクでのC++での私のコードhttps://www.hackerrank.com/challenges/variable-sized-arrays です。

+1

'main()'は無効です - > 'int main(void)'少なくとも – LPs

+0

@LPs OPはコンパイラの拡張機能に依存しています。オンラインの "コーディングの課題"は、コンパイラがデフォルトモードで受け入れるものを受け入れることが多く、通常は奇妙な拡張機能が含まれています –

+1

私たちはオンラインデバッグサービスではありません。 – Nim

答えて

4

あなたはインデックスを混同しています。 scanf("%d", &c[i])scanf("%d", &c[j])である必要があります。

0

多くのCとC++を混在させました。可変2次元の2D配列を実装しようとしているようです。

#include<iostream> 

using namespace std; 
int main() 
{ 
    int n, q; 
    cout<<"Enter the rows : \n" ; 
    cin>>n>>q; 
    int **a = new int*[n]; 
    int k; 
    for (int i = 0; i<n; i++) 
    { 
     cout<<"Enter the column : \n" ; 
     cin>>k; 
     int *c = new int[k]; 
     for (int j = 0; j<k; j++) 
     { 
      cout<<"Enter the value["<<j<<"] : \n"; 
      cin>>c[j]; 
     } 

     a[i] = c; 
    } 
    int s, f, *z; 
    for (int i = 0; i<q; i++) 
    { 
     cout<<"Enter the row and column to print : \n" ; 
     cin>>s>>f; 
     z = a[s]; 
     cout<<z[f]<<endl; 
    } 
    return 0; 
} 

ちょうど参考:適切なエラー処理シナリオを追加する必要があります。

+1

メインにはint型の戻り値の型が必要です。 –

+0

合意。それに応じてコードを修正しました。 – Durgesh

関連する問題