Advertisement
Gilthawk23

arrays

Jan 15th, 2021 (edited)
1,009
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 14.46 KB | None | 0 0
  1. // 1 lvl
  2. // Найти количество чисел, которые стоят на четных местах и делятся на три
  3. #include <iostream>
  4. #include <cstdlib>
  5.  
  6. using namespace std;
  7.  
  8. int main() {
  9.     int m[10], quantity = 0;
  10.     for (int i = 1; i < 10; i+=2) {
  11.         cin >> m[i];
  12.         if (m[i] % 3 == 0) { quantity++; }
  13.     }
  14.     cout << quantity << endl;
  15. }
  16.  
  17. // 1.Дан массив из 10 целых чисел, найти сумму четных отрицательных элементов массива
  18. #include <iostream>
  19. #include <cstdlib>
  20.  
  21. using namespace std;
  22.  
  23. int main() {
  24.     int m[10], amount = 0;
  25.     for (int i = 0; i < 10; i ++) {
  26.         cin >> m[i];
  27.         if ((m[i] < 0)&&(m[i]%2==0)) { amount+=m[i]; }
  28.     }
  29.     cout << amount << endl;
  30. }
  31.  
  32.  
  33. // 2.Дан массив из 10 целых чисел, найти минимальный из элементов массива с нечетными индексами
  34. #include <iostream>
  35. #include <cstdlib>
  36.  
  37. using namespace std;
  38.  
  39. int main() {
  40.     int m[10], min = 0;
  41.     for (int i = 0; i < 10; i += 2) {
  42.         cin >> m[i];
  43.     }
  44.     min = m[0];
  45.     for (int i = 0; i < 10; i += 2) {
  46.         if (m[i] < min) { min = m[i]; }
  47.     }
  48.     cout << min << endl;
  49. }
  50.  
  51. // 3. Дан массив из 10 целых чисел, найти среднее арифметическое всех чётных элементов массива, стоящих на нечётных местах
  52. #include <iostream>
  53. #include <cstdlib>
  54.  
  55. using namespace std;
  56.  
  57. int main() {
  58.     int m[10]; float amount = 0, quantity = 0;
  59.     for (int i = 0; i < 10; i += 2) {
  60.         cin >> m[i];
  61.         if (m[i] % 2 == 0) {
  62.             amount += m[i];
  63.             quantity++;
  64.         }
  65.     }
  66.     cout << amount / quantity << endl;
  67. }
  68.  
  69. // 4. Найти два максимальных элемента последовательности из 10 чисел
  70. #include <iostream>
  71. #include <cstdlib>
  72.  
  73. using namespace std;
  74.  
  75. int main() {
  76.     int m[10], max1 = 0, max2 = 0;
  77.     for (int i = 0; i < 10; i ++) {
  78.         cin >> m[i];
  79.     }
  80.     max1 = m[0];
  81.     max2 = m[0];
  82.     for (int i = 0; i < 10; i ++) {
  83.         if (m[i] > max1) { max2 = max1; max1 = m[i]; }
  84.     }
  85.     cout << max1 << endl;
  86.     cout << max2 << endl;
  87. }
  88.  
  89. // 5. Дан массив из 10 целых чисел, необходимо определить, сколько среди них чисел, кратных 6. Если таких чисел нет, вывести No
  90. #include <iostream>
  91. #include <cstdlib>
  92.  
  93. using namespace std;
  94.  
  95. int main() {
  96.     int m[10], quantity = 0;
  97.     for (int i = 0; i < 10; i ++) {
  98.         cin >> m[i];
  99.         if (m[i] % 6 == 0) { quantity++; }
  100.     }
  101.     if (quantity != 0) { cout << quantity << endl; }
  102.     else { cout << "No" << endl; }
  103. }
  104.  
  105.  
  106. // 6. Дан целочисленный массив из 20 элементов, необходимо найти наибольший элемент, дающий при делении на 4 остаток 3. Если таких чисел нет, вывести No
  107. #include <iostream>
  108. #include <cstdlib>
  109.  
  110. using namespace std;
  111.  
  112. int main() {
  113.     float m[10], max; bool exist = 0;
  114.     for (int i = 0; i < 10; i++) {
  115.         cin >> m[i];
  116.     }
  117.     max = m[0];
  118.     for (int i = 0; i < 10; i++){
  119.         if ((m[i] > max) && ((m[i] / 4 == 3) || (m[i] / 4 == -3))) { max = m[i]; exist = 1; }
  120.     }
  121.     if (exist == 1) { cout << max << endl; }
  122.     else { cout << "No" << endl;}
  123. }
  124.  
  125. // 2lvl
  126.  
  127. // 1. Найти максимальный элемент численного массива и его индекс (max_num и max_index).
  128. #include <iostream>
  129. #include <cstdlib>
  130.  
  131. using namespace std;
  132.  
  133. int main() {
  134.     float m[20], max_num, max_index;
  135.     for (int i = 0; i < 20; i++) {
  136.         cin >> m[i];
  137.     }
  138.     max_num = m[0];
  139.     max_index = 0;
  140.     for (int i = 0; i < 20; i++) {
  141.         if (max_num < m[i]) { max_num = m[i]; max_index = i+1; }
  142.     }
  143.     cout << "Max = " << max_num << endl;
  144.     cout << "Position = " << max_index << endl;
  145. }
  146.  
  147. // 2. Дан массив из 50 элементов, значения которых формируются функцией random и лежат в диапазоне от -50 до 49 включительно. Требуется из одного массива скопировать в другой массив значения в диапазоне от -5 до 5 включительно и подсчитать их количество.
  148. #include <iostream>
  149. #include <cstdlib>
  150. #include <ctime>
  151. using namespace std;
  152.  
  153. int main() {
  154.     srand(time(0));
  155.     int m1[50], m2[50], counter = 0;
  156.     for (int i = 0; i < 50; i++) {
  157.         m1[i] = rand() % (49 - (-50) + 1) + (-50);
  158.     }
  159.     for (int i = 0; i < 50; i++) {
  160.         if ((m1[i] >= -5) && (m1[i] <= 5)) { m2[i] = m1[i]; cout << m2[i] << endl; counter++; }
  161.     }
  162.     cout << "Counter:" << counter << endl;
  163. }
  164.  
  165.  
  166. // 3.В одномерном массиве (заполнение массива случайными числами от -50 до 49) найти сумму отрицательных элементов. Если эта сумма меньше -100, то необходимо прибавить к ней минимальный положительный элемент.
  167. #include <iostream>
  168. #include <cstdlib>
  169. #include <ctime>
  170. using namespace std;
  171.  
  172. int main() {
  173.     srand(time(0));
  174.     int m[10], sum_of_negative = 0, min_positive;
  175.     for (int i = 0; i < 10; i++) {
  176.         m[i] = rand() % (49 - (-50) + 1) + (-50);
  177.         cout << m[i] << endl;
  178.     }
  179.     for (int i = 0; i < 10; i++) {
  180.         if (m[i] > 0) { min_positive = m[i]; }
  181.     }
  182.     for (int i = 0; i < 10; i++) {
  183.         if ((m[i] < min_positive) && (m[i] > 0)) { min_positive = m[i]; }
  184.         if (m[i] < 0) { sum_of_negative += m[i]; }
  185.     }
  186.     cout << "------------------" << endl;
  187.     cout << "Min positive number:" << min_positive << endl;
  188.     cout << "Sum of negative numbers:" << sum_of_negative << endl;
  189.     if (sum_of_negative < -100) { cout << "Sum + Min:" << min_positive + sum_of_negative << endl; }
  190. }
  191.  
  192. // 4. Дан массив из 10 элементов, поменять местами максимальный и минимальный элементы массива
  193. #include <iostream>
  194. #include <cstdlib>
  195. #include <ctime>
  196. using namespace std;
  197.  
  198. int main() {
  199.     int m[10], minnumber, maxnumber, replace = 0, minindex = 0, maxindex = 0;
  200.     for (int i = 0; i < 10; i++) {
  201.         cin >> m[i];
  202.     }
  203.     minnumber = m[0];
  204.     maxnumber = m[0];
  205.     for (int i = 0; i < 10; i++) {
  206.         if (minnumber > m[i]) { minnumber = m[i]; minindex = i; }
  207.         else
  208.             if (maxnumber < m[i]) { maxnumber = m[i]; maxindex = i; }
  209.  
  210.     }
  211.     replace = m[maxindex];
  212.     m[maxindex] = m[minindex];
  213.     m[minindex] = replace;
  214.     cout << "-------------" << endl;
  215.     for (int i = 0; i < 10; i++) {
  216.         cout << m[i] << endl;
  217.     }
  218.     cout << "max index changed from " << minindex << " to " << maxindex << endl;
  219.     cout << "min index changed from " << maxindex << " to " << minindex << endl;
  220. }
  221.  
  222.  
  223. // 5. Дан массив из 15 целых чисел, заданных рандомно (изучить самостоятельно, как вводить случайные/рандомные числа), определить индексы элементов массива, значение которых лежит в указанном пределе
  224. #include <iostream>
  225. #include <cstdlib>
  226. #include <ctime>
  227. using namespace std;
  228.  
  229. int main() {
  230.     srand(time(0));
  231.     int m[15], m1[15];
  232.     for (int i = 0; i < 15; i++) {                          // предел (-1000...1000)
  233.         m[i] = rand() % (3000 - (-3000) + 1) + (-3000);
  234.         cout << m[i] << endl;
  235.         if ((m[i] >= -1000) && (m[i] <= 1000)) {
  236.             m1[i] = i;
  237.         }
  238.     }
  239.     cout << "------------" << endl;
  240.     for (int i = 0; i < 15; i++) {
  241.         if (m1[i] != -858993460) { cout << m1[i] << endl; }
  242.     }
  243. }
  244.  
  245. // 6. Дан массив, содержащий неотрицательные целые числа, не превышающие 10 000.
  246. //Необходимо вывести: минимальный чётный элемент, если количество чётных элементов не больше, чем нечётных,
  247. //или минимальный нечётный элемент, если количество нечётных элементов меньше, чем чётных.
  248. //Например, для массива из шести элементов, равных соответственно 4, 6, 12, 17, 9, 8, ответом будет 9 – наименьшее нечётное число, поскольку нечётных чисел в этом массиве меньше
  249.  
  250. #include <iostream>
  251. #include <cstdlib>
  252. #include <ctime>
  253. using namespace std;
  254.  
  255. int main() {
  256.     setlocale(LC_ALL, "Russian");
  257.     srand(time(0));
  258.     int m[10], sumchet = 0, sumnechet = 0, minchet, minnechet;
  259.     for (int i = 0; i < 10; i++) {
  260.         m[i] = rand() % (10000 - 0 + 1) + 0;
  261.         cout << m[i] << endl;
  262.     }
  263.     minchet = 10001;
  264.     minnechet = 100001;
  265.     for (int i = 0; i < 10; i++) {
  266.         if ((minchet > m[i])&&(m[i]%2==0)) { minchet = m[i]; }
  267.         else
  268.             if ((minnechet > m[i]) && (m[i] % 2 == 1)) { minnechet = m[i]; }
  269.  
  270.         if (m[i] % 2 == 0) { sumchet++; }
  271.         else
  272.             if (m[i] % 2 == 1) { sumnechet++; }
  273.     }
  274.     cout << "------------" << endl;
  275.     cout << "sumchet:" << sumchet << endl;
  276.     cout << "sumnechet:" << sumnechet << endl;
  277.     if (sumchet < sumnechet) { cout << "Минимальный чётный:" <<minchet << endl; }
  278.     else
  279.         if ((sumnechet < sumchet)&&(minnechet!= 10001)) { cout << "Минимальный нечётный:" <<minnechet << endl; }
  280.         else
  281.             if (sumnechet == sumchet) { cout << "Равны" << endl; }
  282. }
  283.  
  284. // 3 lvl
  285.  
  286. // 1. Продукты
  287. #include <iostream>
  288. #include <cstdlib>
  289.  
  290. using namespace std;
  291.  
  292. int main() {
  293.     setlocale(LC_ALL, "Russian");
  294.     string products[10], product; int prices[10], numberofproducts; float finalprice = 0, quantity;
  295.  
  296.     for (int i = 0; i < 10; i++) {
  297.         cin >> products[i];
  298.         cin >> prices[i];
  299.     }
  300.     cout << "Введите количество товаров к покупке" << endl;
  301.     cin >> numberofproducts;
  302.     for (int i = 0; i < numberofproducts; i++) {
  303.         cin >> product;
  304.         cin >> quantity;
  305.         for (int i = 0; i < 10; i++) {
  306.             if (product == products[i]) { finalprice += prices[i] * quantity; }
  307.         }
  308.     }
  309.     cout << "Итоговая цена:" << finalprice << endl;
  310. }
  311.  
  312.  
  313. // 4. Про клиентов фитнес-центра
  314. #include <iostream>
  315. #include <cstdlib>
  316.  
  317. using namespace std;
  318.  
  319. int main() {
  320.     setlocale(LC_ALL, "Russian");
  321.     int N,code, year, month, hours, min_hours = 0, min_year = 0, min_month = 0;
  322.     cout << "Введите кол-во клиентов" << endl;
  323.     cin >> N;
  324.     if (N > 0) {
  325.         for (int i = 0; i < N; i++) {
  326.             cout << "Введите код клиента" << endl;
  327.             cin >> code;
  328.             if ((code >= 10) && (code <= 99)) {
  329.                 cout << "Введите год" << endl;
  330.                 cin >> year;
  331.                 if ((year >= 2000) && (year <= 2010)) {
  332.                     cout << "Введите месяц" << endl;
  333.                     cin >> month;
  334.                     if ((month >= 1) && (month <= 12)) {
  335.                         cout << "Введите кол-во часов" << endl;
  336.                         cin >> hours;
  337.                         if ((hours >= 10) && (hours <= 99)) {
  338.                             if ((min_hours < hours) || (hours == min_hours)) { min_hours = hours; min_year = year; min_month = month; }
  339.                         }
  340.                         else { cout << "Неправильная введенная продолжительность занятий" << endl; }
  341.                     }
  342.                     else { cout << "Неправильный введенный месяц" << endl; }
  343.                 }
  344.                 else { cout << "Неправильный введенный год" << endl; }
  345.             }
  346.             else { cout << "Неправильный введенный код" << endl; }
  347.         }
  348.     }
  349.  
  350.     if ((min_hours != 0) && (min_year != 0) && (min_month != 0)) {
  351.         cout << "------" << endl;
  352.         cout << "Кол-во часов:" <<min_hours << endl;
  353.         cout << "Год:" << min_year << endl;
  354.         cout << "Месяц:" << min_month << endl;
  355.     }
  356. }
  357.  
  358. // 5. 365 дней
  359. #include <iostream>
  360. #include <cstdlib>
  361. #include <iomanip>
  362.  
  363. using namespace std;
  364.  
  365. int main() {
  366.     setlocale(LC_ALL, "Russian");
  367.     int days, day, month; char dot, plus_or_minus; float temp; int temp_int, months[12] = { 1,2,3,4,5,6,7,8,9,10,11,12 }, del[12] = { 0,0,0,0,0,0,0,0,0,0,0,0 }; float temps[12] = { 0,0,0,0,0,0,0,0,0,0,0,0 };
  368.     cout << "Введите кол-во вводимых дней" << endl; // чтобы не заполнять все 365 дней вручную, а проверить 4-5 дней
  369.     cin >> days;
  370.     for (int i = 0; i < days; i++) {
  371.         cout << "Введите день, месяц в формате (dd.mm)" << endl;
  372.         cin >> day;
  373.         if ((day >= 1) && (day <= 31)) {
  374.             cin >> dot;
  375.             if (dot == '.') {
  376.                 cin >> month;
  377.                 cout << "Введите температура в формате (+tt.t; t=temperature)" << endl;
  378.                 if ((month >= 1) && (month <= 12)) {
  379.                     cin >> plus_or_minus;
  380.                     if ((plus_or_minus == '-') || (plus_or_minus == '+')) {
  381.                         cin >> temp;
  382.                         if (plus_or_minus == '-') { temp = temp - (2 * temp); }
  383.                         temp_int = temp;
  384.                         if ((abs(temp - temp_int) >= 0.0) && (abs(temp - temp_int) <= 0.9)) {
  385.  
  386.                             del[month - 1] += 1;
  387.                             temps[month - 1] += temp;
  388.                             if (i == days - 1) {
  389.                                 for (int i = 0; i < 12; i++) {
  390.                                     if ((abs(temps[i] / del[i]) == 1) || (abs(temps[i] / del[i]) == 0)) { cout << months[i] << " месяц" << " = " << temps[i] / del[i] << endl; } else
  391.                                     if ((temps[i] != 0) && (del[i] != 0)) {
  392.                                         cout << "---Результаты----" << endl;
  393.                                        
  394.                                         if ((abs(temps[i] / del[i]) >= 1) && (abs(temps[i] / del[i]) <= 9)) { cout << months[i] << " месяц" << " = " << setprecision(2) << temps[i] / del[i] << endl; }
  395.                                         else
  396.                                             if ((abs(temps[i] / del[i]) >= 10) && (abs(temps[i] / del[i]) <= 99)) { cout << months[i] << " месяц" << " = " << setprecision(3) << temps[i] / del[i] << endl; }
  397.                                             else
  398.                                                 if ((abs(temps[i] / del[i]) >= 100) && (abs(temps[i] / del[i]) <= 999)) { cout << months[i] << " месяц" << " = " << setprecision(4) << temps[i] / del[i] << endl; }
  399.                                                 else
  400.                                                 {
  401.                                                     cout << months[i] << " месяц" << " = " << temps[i] / del[i] << endl;
  402.                                                 }
  403.                                     }
  404.  
  405.                                 }
  406.  
  407.                             }
  408.  
  409.  
  410.                         }
  411.                         else { cout << "Введенная температура должна содержать 1 знак после запятой (e.g. 31 --> 31.0)" << endl; }
  412.  
  413.                     }
  414.                     else { cout << "Неправильно введен знак" << endl; }
  415.  
  416.                 }
  417.                 else { cout << "Неправильно введен месяц" << endl; }
  418.  
  419.             }
  420.             else { cout << "Не была поставлена точка после дня" << endl; }
  421.  
  422.         }
  423.         else { cout << "Неправильно введен день" << endl; }
  424.     }
  425. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement