Руденко Н.А., Семенова Н.В. Алгоритмы обработки одномерных массивов на языке С++
В имени файла надо указать, чья работа!
Файлы удалены - некорректное имя файла!
Статью необходимо переименовать- см. Имя статьи |
Обработка одномерных массивов на языке С++
Условие задачи | Программный код | Блок-схема |
---|---|---|
Задан массив Mas размерности n.
Первая половина массива заполнена с клавиатуры, вторая - случайными числами из диапазона [-10,15]. Вывести элементы массива в строчку. Найти сумму всех элементов массива. |
#include <iostream> #include <conio.h> #include <locale.h> #include <stdlib.h> #include<ctime> #include<math.h> using namespace std; int main() {setlocale(LC_ALL, "Russian"); int const n = 20; int Mas[n],i; //первая половина массива. for (i = 0; i < n/2; i++) { cout << " Введите " << i << "элемент массива"; cin >> Mas[i]; } //вторая половина массива. for (i = n/2; i < n; i++) Mas[i] = -10 + rand() % (15 - (-10)+1); for(i=0;i<n;i++) cout<< Mas[i]<<"\n"; // сумма всех элементов массива. int s = 0; for (i = 0; i < n; i++) s = s + Mas[i]; cout << "сумма=" << s<<"\n"; |
|
Найти сумму значений отрицательных элементов.
Каждый третий элемент увеличить на 5. |
int S=0; int p=1; for(i=0;i<n;i++) if(Mas[i]<0) S=S+Mas[i]; cout<<"Сумма="<<S<<"\n"; for(i=0;i<n;i++) if(Mas[i]%2==0) { p=p*Mas[i]; } cout<<"Произведение="<<p<<"\n"; for(i=2;i<n;i=i+3) Mas[i]=Mas[i]+5; for(i=0;i<n;i++) cout<<"Mas["<<i<<"]="<<Mas[i]<<"\n"; |
|
Найти произведение положительных элементов, стоящих на четных местах. Найти количество элементов, равных нулю. Вывести номера элементов, значения которых больше 10. |
int p = 1,i; for (i = 0; i <= n-1; i=i+2) if (Mas[i] > 0) p = p*Mas[i]; cout « "произведение положительных чисел, стоящих на четных местах = "« p«endl; int k = 0; for (i = 0; i <= n-1; i++) if (Mas[i] == 0) k++; cout « "количество элементов, равных нулю = " « k « endl; for (i = 0; i <= n-1; i++) if (Mas[i] > 10) cout « i « " элемент больше 10 " « endl; |
|
Найти максимальный элемент массива и его порядковый номер.
Найти минимальный элемент и его порядковый номер среди положительных элементов. |
Min=Mas[0]; nMin=0; Max=Mas[0]; nMax=0; for(int i=0; i<=n-1; i++) if(Mas[i]>=Max) { Max=Mas[i]; nMax=i; } for(int i=0; i<=n-1; i++) if(Mas[i]>0) if(Mas[i]<=Min) { Min=Mas[i]; nMin=i; } cout<<" Минимальный элемент среди положительных = "<<Min; cout<<".Его порядковый номер "<<nMin+1<<"\n"; cout<<" Максимальный элемент = "<<Max<<".Его порядковый номер "<<nMax+1<<"\n"; |
Файл:Снимок.JPG |
Вычислить сумму четных элементов до первого нулевого элемента. |
int i=0, S=0; while(Mas[i]!=0 && i<n) {if(Mas[i]%2==0) S+=Mas[i]; i++;} cout << "Сумма четных эл. до первого нулевого: " << S << endl; |
|
Образовать новый массив, элементами которого будут элементы исходного, оканчивающиеся на цифру 5. |
int Mas1[n]; int j = 0, i; for(i = 0; i < n; i++) if (Mas[i]%10==5 || Mas[i]%10==-5) {Mas1[j]=Mas[i]; j++;} cout << "\nНовый массив:\n"; i=0; for (i = 0; i < j; i++) cout << Mas1[i] << ' '; |
|
Отсортировать первые 15 элементов массива по возрастанию методом пузырька
Отсортировать все элементы массива по убыванию методом поиска максимального/минимального элемента |
int b; for (i=1;i<=n-1;i++) for (j=0;j<=n-1;j++) if (Mas[j]>Mas[j+1]) { Mas[j]=b; Mas[j]=Mas[j+1]; Mas[j+1]=b;}
int b; for (i=0;i<=n-1;i++) {min=Mas[i]; nmin=i; for(j=i+1;j<=n-1;j++;) if(Mas[j]>min) {min=Mas[j]; nmin=j;} b=Mas[i]; Mas[i]=Mas[nmin]; Mas[nmin]=b; } |
|
Найти среднее арифметическое элементов массива, расположенных между максимальным и минимальным элементами
Сжать массив, выбросив из него каждый второй элемент. |
const int n = 10; int Mas[n], tmax, tmin; float sum = 0; // Поиск максимального tmax = 0; for (int i = 1; i<n; i++) if (Mas[i]>Mas[tmax]) tmax = i; cout << "Максимальный элемент " << Mas[tmax] << " с номером " << tmax << endl; //Поиск минимального tmin = 0; for (int i = 1; i<n; i++) if (Mas[i]<Mas[tmin]) tmin = i; cout << "Маинимальный элемент " << Mas[tmin] << " с номером " << tmin << endl; // Обмен значения, если минимальное больше максимального if (tmin>tmax) swap(tmin,tmax); // Среднее значения for (int i = tmin + 1; i<tmax; i++) sum = sum + Mas[i]; cout << "Сумма: " << sum << endl; cout << "Среднее арифметическое: " << sum / (tmax - tmin - 1) << endl; // убираем каждый второй элемент массива for (int i = 1, j = i; i < n, j <n; ++i, j = j + 2) mass[i] = mass[j + 1]; // Вывод массива cout << "Измененный массив " << "\n"; for (int i = 0; i <= 4; i++) cout << "mass[" << i << "] = " << mass[i] << "\n"; |
|