Смекни!
smekni.com

Язык программирования С (стр. 5 из 5)

Ò программы: 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<<"&bsol;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]<<"&bsol;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


Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С
Язык программирования С