#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();
}
Другие языки программирования и технологии
помогите пожалуйста, можете объяснить каждую строчку в програмировании
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 стоит ; то оператор пустой, т. е. ничего не выполняется )
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 стоит ; то оператор пустой, т. е. ничего не выполняется )
Похожие вопросы
- Пожалуйста, объясните каждую строчку действий в паскале:
- Пожалуйста, объясните каждую строчку действий в паскале:
- кто может объяснить каждую строчку написанного в с++ ?пожалуйста, а то вообще не понимаю.
- visual c++ объясните, пожалуйста, что означает каждая строчка. задание: найти число различных элементов в массиве
- Кто может помочь?Нужны комментарии к каждой строчке программы...Помогите пожалуйста! оч нужно!!!
- Ребят объясните каждую строчку кода Assembler, вроде лёгко, но я туплю...
- Мне завтра рассказывать программы по турбо паскаль,помогите разьяснить задачи по каждой строчке
- Помогите пожалуйста разобрать задачу по програмированию на C++.
- Помогите. Выполнить обязательно в Visual basic. Даже не Free basic. Либо помогите расписать каждую строчку кода.
- помогите объяснить значение каждой строчки программы на ассемблере!?
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