распечатать 2D-массив в C - PullRequest
0 голосов
/ 03 марта 2011

Мне было интересно, можно ли напечатать 2D-массив в C, как в Python. Например, если у меня есть int array1[10][10];, тогда заполните массив, тогда printf("%li", array1), похоже, не работает. В C есть что-то вроде printf, которое может печатать array1 как [1, 2, 3, 4]? в питоне это будет просто print(array1)

Ответы [ 4 ]

3 голосов
/ 03 марта 2011

К сожалению, стандартного способа сделать это не существует. Способ печати вашего массива будет:

int array1[] = {1, 2, 3, 4};

size_t i = 0;
for (i = 0; i < 4; i++){
    printf("%d ", array1[i]);
}

Обратите внимание, что, если быть более точным, вы можете получить размер массива, используя sizeof:

int array1[] = {1, 2, 3, 4};

int i = 0;
for (i = 0; i < sizeof(array1)/sizeof(int); i++){
    printf("%d ", array1[i]);
}

Некоторые люди считают, что вы должны использовать size_t вместо int для индекса, поскольку именно это sizeof возвращает.

РЕДАКТИРОВАТЬ: Python может распечатать весь массив, потому что массив хранится не только как набор чисел в памяти, но и как структура данных, которая также хранит другую информацию, такую ​​как длина массив.

1 голос
/ 24 марта 2011

В частности, при печати двумерного массива на C вам потребуется реализовать двойной цикл for:

// в псевдокоде

  1. предполагается, что массив вызываетсяmyArray
  2. получить ширину массива, назвать ее j
  3. получить длину массива, назвать ее k
  4. для (a = 0; a
  5. .... for (b = 0; b
  6. ........ printf ("% d", myArray [a][b]);
  7. ....}
  8. }
0 голосов
/ 03 января 2018
   // Int array [10][10];
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
Print("%d",array[i][j]);
}
}

Используя этот код, вы можете распечатать 2D массив в C

0 голосов
/ 03 марта 2011

Простой ответ - «нет» ... вы должны сами его кодировать.И невозможно написать общую подпрограмму dump в C, потому что размер массивов неизвестен.

...