Мистер Фокс разгадывает загадку. На бумаге должно быть 9 чисел в таблице 3 на 3. Все числа различаются друг от друга. Случилась неприятность, на центральное поле попала вода. После этого прочесть её никак не получается. Мистер Фокс знает, какие действия над числами совершались в таблице. 1. Сортируем второй столбец по возрастанию. 2. Прибавляем к первой строке вторую. 3. Сортируем первую строку по возрастанию. 4. Вычитаем из второй строки третью 5. Сортируем все столбцы по убыванию найти неизвестное число, если после всех действий получилась новая таблица:
Собсна на c++ #include <iostream> #include <conio.h> using namespace std; int main() { setlocale(LC_ALL, "Russian"); const int N = 5, M = 5; int a[N][M]; int min; cout << "Zapolnite matricu 5 na 5: " << endl; for (int i(0); i < N; i++) { for (int j(0); j < M; j++) { cin >> a[i][j]; } } min = a[0][0]; for (int i(0); i < N; i++) { for (int j(0); j < M; j++) { if (min > a[i][j]) min = a[i][j]; } } cout <<"Minimal`nii element: "<< min << endl; _getch(); return 0;}
Ну вот, пока без комментариев по 1му вопросу. балы можете не добавлять. Только тут ведется просмотр всего массива от B[1, 1] до B[n, m] чтобы начинать просмотр скажем с [10, 10] надо вначале i j присвоить 10, и при переходе к следующему столбцу после приращения j на 1,устанавливать i:=10 Далее что нужно, чтобы переделать его во 2е задание. Принцип пробега по массиву не меняется. Но теперь вместо min и max будем работать с рабочими переменными SUM и Pr. В SUM накапливаем сумму положительных. Начальное значение можно взять равное нулю. Затем пробегаем по циклу сравниваем текущий элемент B[i, j] c 0 если B[i, j]>0, то добавляем его в сумму SUM:=SUM+B[i, j] В противном случае переходим к следующему элементу. Сложнее будет с произведением. Механизм накопления можно реализовать аналогично а вот какое присвоить начальное значение. 0? ну тогда, что бы мы не нашли произведение с 0 будет 0. 1? а вдруг вообще нет отрицательных элементов, а у нас произведение получится равным 1. Мне кажется надо сначала присвоить ему значение 0. А затем при пробежке по массиву при нахождении отрицательного числа сравнить произведение Pr с нулем Pr=0? да тогда переопределяем его так: Pr:=B[i, j] (присваем ему значение найденного отрицательного элемента) . Pr≠0? тогда переопределяем его так: Pr:=Pr*B[i, j]
P.S. И все-таки лучше уточнить у преподавателя, к чему относится отрезок. Т.е. это диапазон индексов поиска i, j? Или все же диапазон возможных значений элементов массива B[i, j]. Хотя можно выбрать один из вариантов и самому и оговорить его по ходу решения.(По-моему проще принять это как диапазон возможных значений элементов массива.) На мой взгляд в условии следовало это оформить отдельным предложением. Например: Числовые значения элементов массива принадлежат отрезку [-100; 100].
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{ setlocale(LC_ALL, "Russian");
const int N = 5, M = 5;
int a[N][M];
int min;
cout << "Zapolnite matricu 5 na 5: " << endl;
for (int i(0); i < N; i++)
{ for (int j(0); j < M; j++)
{ cin >> a[i][j]; } }
min = a[0][0];
for (int i(0); i < N; i++)
{ for (int j(0); j < M; j++)
{ if (min > a[i][j])
min = a[i][j]; } }
cout <<"Minimal`nii element: "<< min << endl;
_getch();
return 0;}