Advertisement
Guest User

Untitled

a guest
Nov 29th, 2014
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.41 KB | None | 0 0
  1. #include <QtCore/QCoreApplication>
  2. #include <iostream>
  3. #include <cctype>
  4. #include <cstdio>
  5. using namespace std;
  6.  
  7. void suma (int masiv[], int, double&, int&);
  8. void CharInInt (int masiv[], char simvol[], int &);
  9. void mas (int masiv[], int &);
  10. void consol (int masiv[], int);
  11. void maximum (int masiv[], int, int &);
  12. void minimum (int masiv[], int, int&);
  13. void newMas (int masiv[], int newM[], int &, int, int);
  14. void place (int newM[], int part[], int size, int part_size, int &start, int &finish);
  15.  
  16. int main(int argc, char *argv[])
  17. {
  18. QCoreApplication a(argc, argv);
  19. int size,serSum=0,max,min,start,finish;
  20. double ser;
  21. int masiv[100];
  22. int newM [100];
  23. int part [100];
  24. cout<<"Какой длинны вводим масcив?"<<endl;
  25. cin>>size;
  26. mas(masiv,size);
  27. cout<<"Ваш маcсив: \n";
  28. consol(masiv,size);
  29. suma(masiv,size,ser,serSum);
  30. cout<<"Среднее значение элементов массива: "<<ser<<endl;
  31. cout<<"Сума элементов массива, которые больше среднего значения: "<<serSum<<endl;
  32. maximum (masiv,size,max);
  33. cout<<"Максимальное значение массива: "<<max<<endl;
  34. minimum (masiv,size,min);
  35. cout<<"Минимальное значение массива: "<<min<<endl;
  36. cout<<"Добавим в начало массива минимальное значение, "<<
  37. "а в конец - максимальное."<<endl;
  38. newMas (masiv,newM,size,max,min);
  39. cout<<"Ваш массив: "<<endl;
  40. consol (newM,size);
  41. cout<<"Введите длинну части массива, начальный и конечный номер которой хотите найти: "<<endl;
  42. int part_size;
  43. cin>>part_size;
  44. mas(part, part_size);
  45. cout<<"Ваша часть: "<<endl;
  46. consol (part,part_size);
  47. place (newM,part,size,part_size,start,finish);
  48. cout<<"Ваша часть начинается с индекса "<<start<<" и заканчивается индексом "<<finish;
  49. return a.exec();
  50. }
  51.  
  52. void suma (int masiv[], int size, double &ser, int &serSum)
  53. {
  54. int sum=0;
  55. for (int i=0; i<size;i++)
  56. sum+=masiv[i];
  57. ser=sum/size;
  58. for (int i=0; i<size; i++)
  59. {
  60. if(masiv[i]>ser)
  61. serSum+=masiv[i];
  62. }
  63. }
  64.  
  65. void CharInInt (int masiv[], char simvol[], int &size)
  66. {
  67. int i(0);
  68. size=0;
  69. for( ; ; )
  70. {
  71. while (simvol[i]!='\0' && simvol[i]==' ')
  72. i++;
  73. if (simvol[i]=='\0')
  74. return;
  75. masiv[size]=0;
  76. while (simvol[i]!='\0' && simvol[i]!=' ')
  77. {
  78. if (!isdigit(simvol[i]))
  79. {
  80. cout<<simvol[i]<<" не цифра!"<<endl;
  81. return;
  82. }
  83. masiv[size]=masiv[size]*10+(simvol[i]-48);
  84. i++;
  85. }
  86. size++;
  87. }
  88. }
  89.  
  90. void mas (int masiv[], int &size)
  91. {
  92. char simvol[80];
  93. cout<<"Введите числа через пробел."<<endl;
  94. getchar ();
  95. cin.getline(simvol,80);
  96. CharInInt(masiv,simvol,size);
  97. }
  98.  
  99. void consol (int masiv[], int size)
  100. {
  101. for (int i=0; i<size; i++)
  102. cout<<masiv[i]<<" ";
  103. cout<<endl;
  104. }
  105.  
  106. void maximum (int masiv[], int size, int &max)
  107. {
  108. max=masiv[0];
  109. for (int i=0; i<size; i++)
  110. {
  111. if (masiv[i]>max)
  112. max=masiv[i];
  113. }
  114. }
  115.  
  116. void minimum (int masiv[], int size, int &min)
  117. {
  118. min=masiv[0];
  119. for (int i=0; i<size; i++)
  120. {
  121. if (masiv[i]<min)
  122. min=masiv[i];
  123. }
  124.  
  125. }
  126.  
  127. void newMas (int masiv[], int newM[], int &size, int max, int min)
  128. {
  129. int i=0,j=1;
  130. newM[0]=min;
  131. while (i<size && j<=size)
  132. {
  133. newM[j]=masiv[i];
  134. i++;
  135. j++;
  136. }
  137. size+=2;
  138. newM[size-1]=max;
  139. }
  140.  
  141. void place (int newM[], int part[], int size, int part_size, int &start, int &finish)
  142. {
  143. for (int i=0, j=0; i<size && j<part_size;)
  144. {
  145. if(newM[i]!=part[j])i++;
  146. else
  147. {
  148. start=i;
  149. j++;
  150. i++;
  151. for ( ; i<size && j<part_size; i++)
  152. {
  153. if(newM[i]!=part[j])
  154. {
  155. j=0;
  156. break;
  157. }
  158. else
  159. {
  160. finish=i;
  161. j++;
  162. }}}}}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement