Другие языки программирования и технологии

помогите пожалуйста, можете объяснить каждую строчку в програмировании

#include
#define n 10

int main() {
int a [n][n];

for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
a[i][j] = rand() % 100;// matrix initialization

int min = a[0][0], max = a[0][0];
int beforeMax = 0, afterMin = 0;

for (int i = 0; i < n; i++)// looking for max and min elements
for (int j = 0; j < n; j++) {
if (a[i][j] > max) { max = a[i][j];
beforeMax = (i)*n + j;// how many elements we have befor Max element
}
if (a[i][j] < min) { min = a[i][j];
afterMin = n*n - ((i)*n + j)-1; // how many elements we have after Min element
}
}
for (int i = 0; i < n; i++) {// pmatrix printing
printf("\n");
for (int j = 0; j < n; j++)
printf("%d ", a[i][j]);
}

printf("\n\nBefore max element (%d) we have %d elements\n",max, beforeMax); printf("After min element (%d) we have %d elements",min, afterMin);
getchar();

}
Azamat
Azamat
256
include - подключение заголовочного файла
define - определение константы (значения которое во всей программе будет заменяться на другое т. е. n на 10)

int main() { - начало процедуры main, cкоторой выполняется программа
int a [n][n]; - массив целых чисел n на n

for (int i = 0; i < n; i++) - цикл 0..n-1
for (int j = 0; j < n; j++) - цикл 0..n-1
a[i][j] = rand() % 100;// элемент ij массива a заполняется случайным значением (значение функции rand() - остаток от деления его на 100)

int min = a[0][0], max = a[0][0]; //определение переменных min и max равных a[0][0]
int beforeMax = 0, afterMin = 0; //аналогично (переменные равны 0)

....
for (int i = 0; i < n; i++) {// цикл 0..n-1(фигурные скобки)
printf("\n"); //переход на след. строку
for (int j = 0; j < n; j++)// цикл 0..n-1(оператор printf)
printf("%d ", a[i][j]);//вывод a[i][j]
}
printf("\n\nBefore max element (%d) we have %d elements\n",max, beforeMax);
-- вывод строки со значениями переменных max и beforeMax
printf("After min element (%d) we have %d elements",min, afterMin);
-- вывод строки со значениями переменных min, afterMin
getchar(); -- ожидание нажатия на клавишу

если после if или for стоит { то операторы относятся к фигурным скобкам иначе к следующему оператору (если после if/for стоит ; то оператор пустой, т. е. ничего не выполняется )
RK
Ruslan Kapenov
544
Лучший ответ
Azamat спасибо большое))
Azamat Спасибо что помогли. А не можете вы еще 2 программы объяснить???

1)
#include
#define n 25

int left(int a[], int right, int left) {
for (int i = left; i < right; i++)
if (a[i] % 3 == 0)
return i;
return -1;
}
int right(int a[],int right, int left) {
for (int i = right; i > left; i--)
if (a[i] % 3 == 0)
return i;
return -1;
}

int main() {
int a[n];
for (int i = 0; i < n; i++)
a[i] = rand() % 100;
int left = 0, right = n-1;

for (int i = 0; i < n; i++)
printf("%d ", a[i]);
printf(" - source array \n\n\n");

while (left <= right) {

for (int i = left; i < right && a[i]%3 == 0; i++) {
int k = i + 1;
while (a[k] % 3 != 0 && k < n) // looking for next element
k++;
if (a[k] % 3 != 0) break;
if (a[i] > a[k])
{
int z = a[i]; a[i] = a[k]; a[k] = z;
}
}
right--;
for (int i = right; i > l
так уже всё расписано вам на русский перевести?
Вадим Агишев
Вадим Агишев
20 058
Azamat нет, это понятно. Но меня спросили как работают вот эти 3 строчки?
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
a[i][j] = rand() % 100;
Azamat А что значит pmatrix printing?

Похожие вопросы