/*Ввод п элементов массива X*/
for (i = 0; i<n; ++i)
{scanf(“%d”,&temp);
x[i]=temp;
}
pass = 1; /*номер текущего прохода*/
do{
/*Массив считается отсортированным, пока не встретится неупорядоченная пара*/
sorted = 1; /*факт сортировки*/
/*Выполнение прохода по очевидно неотсортированным элементам*/
for (i = 0; i<n-pass; ++i)
{if (x[i]>x[i+1])
/*Перестановка неупорядоченной пары*/
{temp = x[i];
x[i] = x[i+1];
x[i+1] = temp;
sorted = 0; /*Факт сортировки*/
} /*if*/
} /*for*/
++pass;
}while(!sorted);
}
Многомерный массив в Си есть массив массивов, т.е. массив, элементами которого служат массивы.
Объявление многомерного массива v должно содержать сведения о типе, размерности и количестве элементов по каждому измерению.
mun v[ ] [ ]…[ ];
Где р представляет собой размерность массива (значит,
объявление двумерного массива содержит два константных выражения[ ] [ ], трёхмерного – три [ ] [ ][ ] и т.д.)
Однотипные массивы удобно объявлять одним оператором. Здесь же элементам любого массива можно присвоить начальные значения. Например, объявим и зададим начальные значения элементам матрицы
А =
double А[3][3] ={ {1.,2.,3.}, {4.,5.,6. }, {7.,8.,9. }}
Внешние фигурные скобки окаймляют весь список значений, а внутренние – элементы каждой строки матрицы А.
Чтобы обратится к элементу матрицы А, нужно использовать индексированное имя А[0][0].
Многомерные массивы может задаваться так
А[k][i][j], где
k –номер слоя;
i – номер строки;
j – номер столбца.
Объявляя массив из строк, необходимо использовать два константных выражения: первое задает количество строк в массиве, а второе указывает длину каждой строки.
Например,
#define L 81
char T[12][4]={“Dec”, “Jan”, “Feb”, “Mar”, “Apr”, “May”, “Jun”, “Jul”, “Sep”, “Oct”, “Nov”};
P[][L]={“В”, “зыбком”, “мире”, “вещественных”, “чисел”, “осторожность”, “не”, “может”, “быть”, “лишней”};
Здесь определение char T[12][4] задает 12 строковых переменных T[0], T[1]…, T[11] длиной не более 3 символов каждая. Тогда, чтобы вывести на экран последнюю строку, надо указать имя T[11]. Имя T[11][0] выводит первый символ этой строки. Число строк массива Р равно sizeof(P)/sizeof(P[0]).
Диагонали матрицы
Главная диагональ (n=m)
Побочная диагональ (n=m)
Локальный максимум (минимум)
Если (a[i][j]>(<)a[i][j-1] и
a[i][j]>(<)a[i][j+1] и
a[i][j]>(<)a[i-1][j] и
a[i][j]>(<)a[i+1][j])