Блог пользователя mac_n_cheese_pog

Автор mac_n_cheese_pog, история, 3 года назад, По-английски

dunno whats wrong

int n;

cin >> n;

int a[100][100];

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

{

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

{

    cin >> a[i][j];

}

}

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

{

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

{

    cout << a[i][j];

}

cout << endl;

}

  • Проголосовать: нравится
  • -30
  • Проголосовать: не нравится

»
3 года назад, # |
Rev. 2   Проголосовать: нравится -8 Проголосовать: не нравится

If Your value of n is >=101 your code will give RTE.

I hope this will be helpful.

  • »
    »
    3 года назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    i tried a[n][n] but cant,so i deciced to fix the size

    • »
      »
      »
      3 года назад, # ^ |
        Проголосовать: нравится -8 Проголосовать: не нравится

      Yes you should try to use a[n][n] but only for a specific upper bound of n this notation is valid.

      Not sure but allocation of around [100000][100000] give error in my machine :(

      Don't know the accurate upper bound.

      • »
        »
        »
        »
        3 года назад, # ^ |
          Проголосовать: нравится +3 Проголосовать: не нравится

        of course it gives an error, 100000*100000 integers is about 40000 megabytes

»
3 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

You don't understand what a 2D array memorizes.

If we define a[N][M] , that means you can use a[0~N-1][0~M-1] , and other position will get some wrong value or Runtime Error.

If N,M is too big , you will get Memory Limit Exceeded.