У вас вопросы?
У нас ответы:) SamZan.net

размер типа данных число строк число столбцов

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 15.1.2025

Двумерные массивы

Язык СИ допускает многомерные массивы, простейшими из которых являются двумерные.

Двумерный массив int а[2][3] можно представить в виде таблицы:

A[0,0]

A[0,1]

A[0,2]

A[1,0]

A[1,1]

A[1,2]

Первый индекс – номер строки, второй - номер столбца.

Количество байт памяти, необходимое для хранения двумерного массива в памяти определяется как:

«размер типа данных»* «число строк» * «число столбцов».

В памяти компьютера двумерный массив располагается по строкам.

При программировании важно уметь инициализировать массивы, т.е. присвоить элементам массива некоторые начальные значения. Самый простой способ инициализации – указать список инициализаторов в фигурных скобках при объявлении массива:

int a[6]={1,2,3,4,5,6};

int b[2][3]={1,2,3,4,5,6};

Многомерные массивы можно инициализировать, рассматривая их как массивы массивов:

int c[2][3]={{1,2,3},{4,5,6}};

Если в определении массива явно указан его размер, то количество начальных значений не может быть больше количества элементов в массиве. Количество инициализаторов может быть меньше, чем количество элементов массива. В этом случае оставшиеся элементы массива считаются неопределенными, начальные значения получают только первые элементы массива (с наименьшими значениями индекса).

int d[6]={1,2};   

В данном случае d[0] = 1, d[1]=2.

Допускается объявление и инициализация массива без явного указания его размера:

char str[]= “abcd”;

В этом случае компилятор сам определит необходимое количество элементов, включая нулевой байт. Таким образом можно объявлять массивы любого типа:

int s[]={1,2,3,4,5,6};

Следующее описание формирует «треугольную» матрицу в целочисленном массиве из 5 строк и 4 столбцов:

int x[5][4]={{1}, {2,3}, {4,5,6}, {7,8,9,10}};

При объявлении многомерных массивов с неизвестным количеством элементов, можно не указывать размер только в самых левых квадратных скобках:

int a[][3]={1,2,3,

    4,5,6,

    8,9,10};


Пример 1.
Найти минимальный элемент и его индекс в двумерном массиве.

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

int main()

{

   int a[10][10];

   int n=10, i,j, n_i, n_j, min;

   

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

   {

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

           {

                 a[i][j]=rand()%10;

                 printf("a[%d %d]=%d ", i,j,a[i][j]);

           }

           printf("\n");

   }

   

   min=a[0][0];  

   n_i=0;

   n_j=0;

   

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

   {

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

           {

                if(a[i][j]<min)

                {

                     min=a[i][j];

                     n_i=i;

                     n_j=j;          

                }

           }

   }  

   

   printf("min el= a[%d][%d]=%d",n_i, n_j,a[n_i][n_j]);

   getch();

}


Пример 2.
Вывести на экран элементы, расположенные на главной и на побочной диагоналях.

Главной диагональю матрицы называется диагональ, проведённая из левого верхнего угла матрицы в правый нижний.

Побочной диагональю матрицы называется диагональ, проведённая из левого нижнего угла матрицы в правый верхний.

Главная диагональ

Побочная диагональ

A[0][0]

A[1][1]

A[2][2]

A[3][3]

Главную диагональ образуют элементы у которых индекс строки совпадает с индексом столбца

A[0][3]

A[1][2]

A[2][1]

A[3][0]

Побочную диагональ формируют элементы с номерами A[0][n-1], A[1][n-2], A[2][n-3]… A[n-1][0]

Побочную диагональ формируют элементы с номерами- A[i][n-i-1].

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

int main()

{

   int a[10][10];

   int n=10, i, j;

   

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

   {

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

           {

                 a[i][j]=rand()%10;

                 printf("%d  ", a[i][j]);

           }

      printf("\n");     

   }

 puts("\n glavnaya diagonal");  

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

   {

       printf("%d ", a[i][i]);

   }

puts("\n pobo4naya diagonal");  

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

   {

       printf("%d ", a[i][n-i-1]);

   }    

   getch();

}




1. Михаил Булгаков- уроки судьб
2. 20 Бухгалтерский учет Ярцева ауд
3. Перестройка начало демократии
4. записка Програму зовнішнього незалежного оцінювання з української мови далі ~ програма ЗНО розроблено з у.
5. ЭКОНОМИЧЕСКАЯ ЧАСТЬ 5
6. Оптимизация системы управления материальными запасами
7. В западном обществе должен присутствовать страх причиной которому может также служить и то что с момента п
8. Инфекционные болезни птиц вирусной этиологии
9. Песто 2500р. Без скидки- 950р.
10. права авторов произведений литературы науки и искусства Автору произведения или иному правообладателю п
11. Права и обязанности супругов
12. тема каждой страны имеет свою специфику
13. общий объем ярмарочной торговли в 1818 г
14. Понятие persona в средневековой Западной Европе
15. Комплексное изучение коммерческого подкупа
16. Разработка бизнес-плана по закупке оборудования (на примере ООО Саланг-Б)
17. Курсовая работа- Гарантии и компенсации работникам
18. ПРАКТИКУМ З ДИСЦИПЛІНИ ldquo;ЕКОНОМІКА ТА ОРГАНІЗАЦІЯ ІННОВАЦІЙНОЇ ДІЯЛЬНОСТІ
19. Согласовано Согласовано Начальник упра
20. средне и нижнеампулярный отделы.html