Ответы на вопрос:
Program n1; const n=10; var a: array [1..n] of integer; i,sum: integer; begin sum: =0; for i: =1 to n do begin write('введите ',i,' число: '); readln(a[i]); end; for i: =1 to n do if(a[i] mod 2=0) then sum: =sum+a[i]; writeln('сумма четных: ',sum); end.
/* дурацкая для n > 3, ибо не понятно, что делать: 1) разбить все столбцы на группы одинаковых столбцов и посчитать внутри них число пар. затем суммировать. 2) разбить столбцы на группы одинаковых столбцов и суммировать количество элементов в каждой из групп, если оно больше 1. то есть найти количество столбцов, для которых среди других столбцов найдется хотя бы один идентичный ему 3) разбить столбцы на группы одинаковых столбцов и вывести количество элементов в каждой группе, если оно больше 1. для n=3 дело проще, потому что таких групп максимум одна, поэтому тут, по сути, неоднозначности не возникает (за исключением того, что в первом в общем, решил делать как во втором пункте. ответ в любом случае будет верным.*/ #include < iostream> using namespace std; int n, result = 0; int **ar; //указатель на указатель для создания динамического двумерного массива bool *flag; //указатель на первый элемент массива флагов void create(int n)//создание динамического массива { ar = new int*[n]; for (int i = 0; i < n; i++) ar[i] = new int[n]; flag = new bool[n]; for (int i = 0; i < n; i++) flag[i] = false; } void inp(int n) //ввод элементов массива { cout < < "input rows of matrix: \n"; for (int i = 0; i < n; i++) { cout < < i + 1 < < ": "; for (int j = 0; j < n; j++) cin > > ar[i][j]; } } void outp(int n) //вывод элементов массива { cout < < "elements of matrix: \n"; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) cout < < ar[i][j] < < " "; cout < < endl; } } bool isequal(int n, int j1, int j2)//проверка на равенство столбцов { bool res = true; for (int i = 0; i < n; i++) { if (ar[i][j1] ! = ar[i][j2]) { res = false; break; } } if (res)//если столбцы равны flag[j2] = true; /*отмечаем столбец как просмотренный, чтобы в следующий раз его не сравнивать с другими столбцами*/ return res; } void calculate(int n)//считаем количество столбцов { int k = 1; for (int j1 = 0; j1 < n; j1++) if (! flag[j1]) { k = 1; for (int j2 = j1 + 1; j2 < n; j2++) if (! flag[j2] & & isequal(n, j1, j2)) k++; if (k > 1)//имеется k одинаковых стобцов по типу столбца j1 result += k; //плюсует к итоговому результату } } int main(){ cout < < "input n: "; cin > > n; create(n); inp(n); //ввод массива outp(n); //вывод массива calculate(n); //расчет того, что требуется if (result > 0)/*количество столбцов, которые , по крайней мере, с одним из других столбцов*/ cout < < "the number of columns, coinciding with at least one other column, is " < < result < < endl; else //все столбцы разные cout < < "there is no matching columns\n"; return 0; }
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
Qwan28.11.2021 16:11
-
Olivka0911.02.2020 05:52
-
Наташа597907.09.2020 06:06
-
Tamik789507.03.2023 19:16
-
Крутойбрат04.05.2023 18:42
-
pelulachka05.10.2022 12:00
-
roker6221.02.2021 02:30
-
132132132555555530.11.2022 19:14
-
blakblood2влад13.01.2022 06:57
-
MichiChi29.06.2023 06:52
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.