Ò программы: 5 1 3 7-41 9 четных чисел в послед-сти нет
Ò 4 2 4 64 sr = 4.00
Выражение a[i] %2 будет давать 0, если а[i] четное число. В C++ 0 трактуется как ложь, поэтому
операторе if ставим операцию логического отрицания (!) перед этим выражением.
Ò Дан массив из n целых чисел (n<100). Написать программу, которая определяет
наименьшее элемент в массиве и его порядковый номер.
Ò #include <iostream>
Ò using namespace std;
Ò int main()
Ò { int n; cout<<"n="; cin>>n;
int a[n];
Ò for (int i=0;i<n; ++i) { cout<<"a[“<<i<<"]="; cin>>a[i];}
Ò int min=a[0]; //в качестве наименьш.значения полагаем нулевой элемент массива
Ò int nmin=0; //соответственно его порядковый номер равен 0
Ò for (int i=1;i<n; ++i) //перебираем все элементы массива с первого по последний
Ò if (a[i]<min) //если очередной элемент окажется меньше значения min то в качестве
Ò {min=a[i]; //нового наименьш.значения запоминаем значение текущего элемента
Ò nmin=i;} //массива и, соответственно, запоминаем его номер
Ò cout <<"min=“<< min<<"\t nmin=" << nmin<<endl;
return 0;}
Ò Результат работы n Исходные данные Наименьшее значение Его номер
Ò программы: 5 13 7 -41 9 - 41 4
Ò Дан массив из n действительных чисел (n<100). Написать программу, которая меняет местами в этом массиве наибольший и наименьший элемент местами (считается, что в послед-ти только один наибольший и один наименьший элементы).
Ò #include <iostream>
Ò using namespace std;
Ò int main()
Ò { int n; cout<<"n="; cin>>n; ,
Ò float a[n];
Ò for (int i=0;i<n; ++i) {cout<<"a[“<<i<<"]=", cin>>a[i]:}
Ò //первоначально полагаем элемент с номером 0 минимальным и максимальным
Ò float min=a[0], max=a[0];
Ò int nmin=0, nmax=0;
Ò for (int i=1 ;i<n; ++i) //поиск наибольшего и наименьшего значения в массиве и их номеров { if (a[i]<min){min=a[i];nmin=i;}
Ò if(a[i]>max){max=a[i];nmax=i;}}
Ò a[nmax]=min; //в позицию наименьшего элемента записываем значение наибольшего
Ò a[nmin]=max; //в позицию наибольшего элемента записываем значение наименьшего
Ò for (int i=0;i<n; ++i) cout<<a[i]<<"\t"; //выводим измененный массив на экран
Ò return 0;}
Ò Результат работы программы: n Исходные данные Измененные данные
Ò 4 1.1 3.4 -41.2 9.9 1.1 3.4 9.9 -41.2
Ò Дана последовательность целых чисел.
Ò 1. заменить все положительные элементы противоположными числами;
Ò 2. заменить все отрицательные элементы, не кратные 3, противоположными им числами.
Ò 3. подсчитать среднее арифметическое нечётных элементов массива ( для двумерного массива)
Ò 4.подсчитать сумму элементов кратных 9.
Ò 5. заменить все минимальные элементы на противоположные.
Ò Двумерные массивы (матрицы, таблицы) - представляют собой фиксированное количество элементов одного и того же типа, объединенных общим именем, где каждый элемент определяется номером строки и номером столбца, на пересечении которых он находится.
Ò Двумерные массивы находят свое применение тогда, когда исходные данные представлены в виде таблицы, или когда для хранения данных удобно использовать табличное представление.
Ò Нумерация строк и столбцов начинается с нулевого номера.
Ò Поэтому если массив содержит три строки и четыре столбца, то строки нумеруются: О, 1, 2; а столбцы: 0, 1, 2, 3.
Ò В C++ двумерный массив реализуется как одномерный, каждый элемент которого также массив.
Ò В двумерном массиве, элементами которого являются целые числа, подсчитать среднее арифметическое четных элементов массива.
Ò #include <iostream>
Ò using namespace std;
Ò //Функция создает и заполняем двумерный массив
Ò int ** creat(int &n, int &m)
Ò {cout <<"n="; cin >>n; cout <<"m="; cin >>m;
Ò int **mas=new int *[n];
Ò for (int i=0; i<n; ++i) mas[i]=new int [m];
Ò for (int i=0; i<n; ++i)
Ò for (int j=0; j<m; ++j) {cout<<"mas["<<i<<"][“<<J<<"]="; cin.>>mas[i][j];}
Ò return mas;}
Ò P.s
Ò int main()
Ò { int n,m, k=0;
Ò int **a=creat(n,m);
Ò for (int i=0;i<n; ++i) //обработка элементов массива
Ò for (int j=0;j<rn; ++j)
Ò {if (!(a[i][j]%2))//если элемент массива четный, то добавляем его к сумме и
Ò {s+=a[i][fj; к++;}} //увеличиваем количество четных элементов на 1
Ò if (к) cout <<s/k;
Ò else cout«" Четных элементов в массиве нет'";
Ò for (int i=0;i<n; i++) delete [] a[ij; //освобождаем память, выделенную под массив delete [] a;
Ò return 0;}
Ò Результат работы программы: n m Массив Anxm Ответ
Ò 2 3 213 4.00
Ò 136
Ò 3 2 3 чётных элементов
Ò в массиве нет
Ò Дан двумерный массив, элементами которого являются целые числа.
Ò Найти значение максимального элемента массива.
Ò #include <iostream>
Ò using namespace std;
Ò int ** creat(int &n, int &m)
Ò {cout <<"n=";"cin >>n; cout <<"m="; cin >>m;
Ò int **mas=new int *[n];
Ò for (int i=0; i<n; ++i) mas[i]=new int [m];
Ò for (int i=0; i<n; ++i)
Ò for (int j=0; j<m; ++j) {cout<<"mas[“<<i<“][<<“j<<”]=“; cin>>mas[i][j]}
Ò return mas;}
Ò P.s
Ò int main()
Ò {int n,m;
Ò cout <<"n="; cin >>n; cout <<"m="; cin >>m; //ввели размерность массива
Ò int **a=creat(n,m);
Ò int max=a[0][0]; //первоначально качестве максимального элемента полагаем а[0][0]
Ò for (int i=0;i<n; ++i) // просматриваем все элементы массива
Ò for(intj=0;j<m; +>j)
Ò if (a[i]i[j]>max) //если очередной элемент больше значения максимального,
Ò max=a[i][j]; //то в качестве максимального запоминаем этот элемент
Ò cout<<"max=“<<max;
Ò for (int i=0,i<n; i++) delete [] а[i] //освобождаем память, выделенную под массив
Ò delete [] а;
Ò return 0;}
Ò Результат работы программы: n m Массив An*m Ответ
Ò 2 3 2 13 6
Ò 1 36
Ò Дана квадратная матрица, элементами которой являются вещественные числа.
Подсчитать сумму элементов главной диагонали.
Ò Для элементов, стоящих на главной диагонали характерно то, что номер строки совпадает с номером столбца. Этот факт будем учитывать при решении задачи.
Ò #include <iostream>
Ò using namespace std;
Ò float** creat{irit &n)
Ò {cout <<"n="; cin >>n;
Ò float **mas=new int *[n];
Ò for (int i=0; i<n; ++i) mas{i]=new int [n];
Ò for (int i=0; i<n; ++i)
Ò for (int j=0; j<n; ++j) {cout<<"mas[“<<i<<"][<<“j”<<]; cin>>mas[i][j];}
Ò return mas;}
Ò P.s
Ò int main()
Ò { int n;
Ò float **a=creat(n);
Ò float s=0;
Ò for (int i=0;i<n; i++) //просматриваем все строки массива
Ò s+=a[i][i}; //добавляем к сумме значение элемента стоящего на главной диагонали
Ò cout<<" Сумма элементов главной диагонали =“<<s;
Ò for (int i=0;i<n; i++) delete [] a[i]; //освобождаем память, выделенную под массив
Ò delete [] a;
Ò return 0;}
Ò Результат работы n Массив Аn* n Ответ
Ò программы: 3 2.4 -1.9 3.1 Сумма элементов главной диагонали
Ò 1.1 3.6 -1.2 =4.300
Ò -2.1 4.5 -1.7