Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Объявления двумерного массива выполняется аналогично одномерному вместе с объявлением всех переменных программы.Содержание книги
Поиск на нашем сайте <тип> name [n][m]; где: n – количество строк в массиве, целое число. m – количество элементов в строке массива, целое число. Например int b[5][6], q[10][15]; float y[7][5];
Обращение к элементу матрицы выполняется через индексы элементов. a[0][0] a[1][2] a[i][j] a[9][3] y[0][0] y[0][1]... y[5][7] В памяти многомерные массивы располагаются линейно так, что в первую очередь меняется крайний правый индекс, затем индекс слева и т.д. Начальные индексы у элементов многомерных массивов равны 0. Индексы для элементов массива d[3][4]:
d[0][0] d[0][1] d[0][2] d[0][3] d[1][0] d[1][1] d[1][2] d[1][3] d[2][0] d[2][1] d[2][2] d[2][3]
4.4.2 Инициализация многомерных массивов:
int t[3][4] = { {2, 7, -1, -10}, {5, 12, 18, -3}, {11, -8, 25, 4} };
Для работы с многомерными массивами чаще всего используются сложные циклы for. Количество операторов цикла for равна размерности массива. Параметрами этих циклов является индексы элементов массива.
4.4.3 Ввод значений элементов матрицы
• С помощью клавиатуры for(i=0; i<n; i++) for(j=0; j<m; j++) scanf(“%d”, &a[i][j]);
• С помощью датчика случайных чисел for(i=0; i<n; i++) for(j=0; j<m; j++) a[i][j]= 10+0.001*rand();
4.4.4 Вывод элементов матрицы на печать
for(i=0; i<n; i++) { printf(“\n”); for(j=0; j<m; j++) printf(“ %6.2f ”, a[i][j]); }
Пример 4.4. Задана матрица действительных чисел, размером 10х9. Найти сумму всех отрицательных элементов. Результат – простая переменная
Int main() { float a[10][9], s; int i,j; for (i=0;i<10;i++) { printf("\n"); for (j=0; j<9; j++) { a[i][j]=-5+0.001*rand(); printf("%6.1f",a[i][j]); } } s=0; for (i=0; i<10; i++) for(j=0; j<9; j++) if(a[i][j]<0) s=s+a[i][j]; printf("\n сумма= %6.2f",s); return 0; }
Пример 4.5. Задан массив A размером 10х9. Найти суммы положительных элементов в каждой строке. Результат - одномерный массив.
Текст програми void main() { float a[10][9], s[10]; int i,j; for (i=0;i<10;i++) { printf("\n"); for (j=0; j<9; j++) { a[i][j]=-5+0.001*rand(); printf("%6.1f",a[i][j]); } } printf("\n"); printf("\n"); for (i=0; i<10; i++) { s[i]=0; for(j=0; j<9; j++) if(a[i][j]>0) s[i]=s[i]+a[i][j]; } for(i=0; i<10; i++) printf(" %5.0f",s[i]); }
Приклад 4.6. В матрице размером 8х8 найти значение и положение максимального элемента, лежащего выше главной диагонали
Текст програми void main() { float a[8][8],max; int i,j,nstr,nstb; for (i=0;i<10;i++) { printf("\n"); for (j=0; j<9; j++) { a[i][j]=-5+0.001*rand(); printf("%6.1f",a[i][j]); } } printf("\n"); max=-1000; for (i=0; i<10; i++) { for(j=i+1; j<9; j++) if(a[i][j]>max){max=a[i][j];nstr=i; nstb=j;} }
printf("%d %d %5.1f",nstr, nstb, max); }
Контрольные вопросы для самопроверки 1. Как осуществляется описание двумерных массивов? 2. Как осуществляется запись элементов двумерных массивов? 3. Запишите фрагмент программы, который одновременно формирует матрицу с помощью функций формирования случайных чисел и выводит ее значение на экран для ввода элементов массива. 4. Запишите фрагмент программы, который вычисляет сумму элементов матрицы. 5. Запишите фрагмент программы, который находит минимальный элемент в матрице. 6. Запишите фрагмент программы, который находит минимальный элемент в каждой строке двумерного массива. МЕТОДЫ СОРТИРОВОК Упорядоченным (отсортированным) называется массив, значения элементов которого отвечают следующему условию: a 1 ≤ a 2 ≤ a 3 ≤... ≤ ai ≤ ai +1 ≤... ≤ an -1 ≤ an (по возрастанию) или a 1 ≥ a 2 ≥ a 3 ≥... ≥ ai ≥ ai +1 ≥... ≥ an -1 ≥ an (по убыванию) Существует целый ряд методов, позволяющих отсортировать имеющийся массив. Сортировка выбором. Найти элемент массива, имеющий наименьшее значение в исходном массиве. Переставить его с первым элементом. Затем проделать то же самое, начав со второго элемента, затем с третьего и т.д.
Алгоритм выглядит следующим образом
Сортировка обменами. Последовательно сравниваются два соседних элемента. Если а i <а i +1. никаких действий не предпринимается. Если а i >а i +1. меняются местами а i и а i +1. В результате одного прохода вдоль массива самый большой элемент окажется на последнем месте. Возобновляется просмотр с начала уменьшая на единицу количество просматриваемых элементов. Так до тех пор, когда элементы будут упорядочены
Текст программы Void main () { float a[30],dop; int n,i,k, f=1;
n=10; printf("\n исходный массив\n ");
for (i=0;i<n;i++) { a[i]=0.001*rand(); printf("%5.1f",a[i]); } while(f==1) { f=0; for (i=0;i<n-1;i++) if (a[i]>a[i+1]) {dop=a[i]; a[i]=a[i+1]; a[i+1]=dop; f=1; }
} printf("\n отсортированный массив\n ");
for (i=0;i<n;i++) printf("%5.1f",a[i]); }
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Последнее изменение этой страницы: 2021-04-04; просмотров: 108; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.15 (0.007 с.) |