Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <QtCore/QCoreApplication>
- #include <iostream>
- #include <cctype>
- #include <cstdio>
- using namespace std;
- void suma (int masiv[], int, double&, int&);
- void CharInInt (int masiv[], char simvol[], int &);
- void mas (int masiv[], int &);
- void consol (int masiv[], int);
- void maximum (int masiv[], int, int &);
- void minimum (int masiv[], int, int&);
- void newMas (int masiv[], int newM[], int &, int, int);
- void place (int newM[], int part[], int size, int part_size, int &start, int &finish);
- int main(int argc, char *argv[])
- {
- QCoreApplication a(argc, argv);
- int size,serSum=0,max,min,start,finish;
- double ser;
- int masiv[100];
- int newM [100];
- int part [100];
- cout<<"Какой длинны вводим масcив?"<<endl;
- cin>>size;
- mas(masiv,size);
- cout<<"Ваш маcсив: \n";
- consol(masiv,size);
- suma(masiv,size,ser,serSum);
- cout<<"Среднее значение элементов массива: "<<ser<<endl;
- cout<<"Сума элементов массива, которые больше среднего значения: "<<serSum<<endl;
- maximum (masiv,size,max);
- cout<<"Максимальное значение массива: "<<max<<endl;
- minimum (masiv,size,min);
- cout<<"Минимальное значение массива: "<<min<<endl;
- cout<<"Добавим в начало массива минимальное значение, "<<
- "а в конец - максимальное."<<endl;
- newMas (masiv,newM,size,max,min);
- cout<<"Ваш массив: "<<endl;
- consol (newM,size);
- cout<<"Введите длинну части массива, начальный и конечный номер которой хотите найти: "<<endl;
- int part_size;
- cin>>part_size;
- mas(part, part_size);
- cout<<"Ваша часть: "<<endl;
- consol (part,part_size);
- place (newM,part,size,part_size,start,finish);
- cout<<"Ваша часть начинается с индекса "<<start<<" и заканчивается индексом "<<finish;
- return a.exec();
- }
- void suma (int masiv[], int size, double &ser, int &serSum)
- {
- int sum=0;
- for (int i=0; i<size;i++)
- sum+=masiv[i];
- ser=sum/size;
- for (int i=0; i<size; i++)
- {
- if(masiv[i]>ser)
- serSum+=masiv[i];
- }
- }
- void CharInInt (int masiv[], char simvol[], int &size)
- {
- int i(0);
- size=0;
- for( ; ; )
- {
- while (simvol[i]!='\0' && simvol[i]==' ')
- i++;
- if (simvol[i]=='\0')
- return;
- masiv[size]=0;
- while (simvol[i]!='\0' && simvol[i]!=' ')
- {
- if (!isdigit(simvol[i]))
- {
- cout<<simvol[i]<<" не цифра!"<<endl;
- return;
- }
- masiv[size]=masiv[size]*10+(simvol[i]-48);
- i++;
- }
- size++;
- }
- }
- void mas (int masiv[], int &size)
- {
- char simvol[80];
- cout<<"Введите числа через пробел."<<endl;
- getchar ();
- cin.getline(simvol,80);
- CharInInt(masiv,simvol,size);
- }
- void consol (int masiv[], int size)
- {
- for (int i=0; i<size; i++)
- cout<<masiv[i]<<" ";
- cout<<endl;
- }
- void maximum (int masiv[], int size, int &max)
- {
- max=masiv[0];
- for (int i=0; i<size; i++)
- {
- if (masiv[i]>max)
- max=masiv[i];
- }
- }
- void minimum (int masiv[], int size, int &min)
- {
- min=masiv[0];
- for (int i=0; i<size; i++)
- {
- if (masiv[i]<min)
- min=masiv[i];
- }
- }
- void newMas (int masiv[], int newM[], int &size, int max, int min)
- {
- int i=0,j=1;
- newM[0]=min;
- while (i<size && j<=size)
- {
- newM[j]=masiv[i];
- i++;
- j++;
- }
- size+=2;
- newM[size-1]=max;
- }
- void place (int newM[], int part[], int size, int part_size, int &start, int &finish)
- {
- for (int i=0, j=0; i<size && j<part_size;)
- {
- if(newM[i]!=part[j])i++;
- else
- {
- start=i;
- j++;
- i++;
- for ( ; i<size && j<part_size; i++)
- {
- if(newM[i]!=part[j])
- {
- j=0;
- break;
- }
- else
- {
- finish=i;
- j++;
- }}}}}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement