Будь умным!


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

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

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

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

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

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

от 25%

Подписываем

договор

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

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

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

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

Двумерный массив 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. Колокола персональная выставка художника Владимира Чернышова посвященная 140летию со дня рождения Федор
2. N 1063 ОБ УТВЕРЖДЕНИИ ПРАВИЛ ОПРЕДЕЛЕНИЯ РАЗМЕРА ШТРАФА НАЧИСЛЯЕМОГО В СЛУЧАЕ НЕНАДЛЕЖАЩЕГО ИСПОЛНЕНИ
3. на тему- 2013Содержание [1] Введение [2] Глава I
4. Дипломная работа- Развитие графических навыков у детей на занятиях кружка росписи по дереву
5. Анатомия человека
6. реферат Моя сестра
7. Компьютерные сети
8. экспертного факультета 2 сентября прошло торжественное мероприятие приуроченное ко Дню знаний
9. Лечение пироплазмоза собаки
10. і. Скаляр ~ріс ке~істікті~ ~рбір н~ктесінде скаляр болатын функциямен сипатталатын физикалы~ ~ріс.
11. Пути совершенствования системы учета расчетов с подотчетными лицами организации
12. Лабораторная работа Оценка производственной вибрации средства и методы защиты от нее
13. на тему- Разработка бизнесплана парикмахерской
14. Экономические методы управления персоналом
15.  Адлеріанський підхід в консультуванні2
16. Реферат Розробка живої культуральної вакцини проти вірусної діареї великої рогатої худоби
17.  Нефинансовые активы Основные средства Нематериальные активы Непроизведенные активы
18. Энджелбарт Дуглас
19. Строительное материаловедение на рубеже веков
20. 1 Pcorbnne 1 million Toilette 100 1500 2