Advertisement
SteelK

Untitled

Apr 30th, 2016
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.26 KB | None | 0 0
  1. #include "stdafx.h"
  2.  
  3. #include <iostream>
  4. #include <cstdlib>
  5. #include <ctime>
  6.  
  7. using namespace std;
  8.  
  9. int min_rasnost_modul(int *in_mas, unsigned int in_dlina) {
  10.     int a = 0, min;
  11.     in_dlina--;
  12.     min = abs(abs(in_mas[1]) - abs(in_mas[0]));
  13.     for (unsigned int i = 1; i < in_dlina; i++) {
  14.         a = abs(abs(in_mas[i + 1]) - abs(in_mas[i]));
  15.         if (a <= min)
  16.             min = a;
  17.     }
  18.     return min;
  19. }
  20.  
  21. int *novmas(int *in_mas, int min, unsigned int in_dlina, int *size_nm) {
  22.     int size_nm_buf = *size_nm;
  23.     int *number_mas = new int[in_dlina];
  24.     unsigned int j = 0;
  25.     for (unsigned int i = 0; i < in_dlina; i++) {
  26.         if (in_mas[i] < min) {
  27.             number_mas[j] = i;
  28.             j++;
  29.             size_nm_buf++;
  30.         }
  31.     }
  32.     *size_nm = size_nm_buf;
  33.     return number_mas;
  34. }
  35.  
  36. void mascin(int *in_mas, unsigned int size) {
  37.     cout << "Введите каждый элемент массива" << endl;
  38.     for (unsigned int i = 0; i < size; i++) {
  39.         cout << "mas[" << i << "] = ";
  40.         cin >> in_mas[i];
  41.     }
  42. }
  43.  
  44.  
  45. void masrand(int *in_mas, unsigned int size) {
  46.     for (unsigned int i = 0; i < size; i++) {
  47.         in_mas[i] = rand() % 10 - 5;
  48.         cout << "mas[" << i << "] = " << in_mas[i] << endl;
  49.     }
  50. }
  51.  
  52.  
  53. int* creat_mas(unsigned int size) {
  54.     int *mas = new int[size];
  55.     char answer;
  56.     cout << "Вводить ли значения элементов массива(1) или задавать их рандомно(2)? (1/2)" << endl;
  57.     while (true) {
  58.         cin >> answer;
  59.         if (answer == '1' || answer == '2')
  60.             break;
  61.         else
  62.             cout << "Ошибка, повторите ввод...\n";
  63.     }
  64.  
  65.     if (answer == '1')
  66.         mascin(mas, size);
  67.     else
  68.         masrand(mas, size);
  69.     return mas;
  70. }
  71.  
  72.  
  73. void newmas(int*& mas, unsigned int& size) {
  74.  
  75.     cout << "Введите длину массива..." << endl;
  76.     cin >> size;
  77.     while (!size) {
  78.         cout << "Ошибка, введите повторно..." << endl;
  79.         cin >> size;
  80.     }
  81.     mas = creat_mas(size);
  82. }
  83.  
  84. int main() {
  85.     setlocale(0, "");
  86.     srand(time(NULL));
  87.     unsigned int size;
  88.     int* mas;
  89.     newmas(mas, size);
  90.     int size_nm = 0;
  91.     int *number_mas = novmas(mas, min_rasnost_modul(mas, size), size, &size_nm);
  92.     //cout << "!size_nm = " << size_nm << endl;
  93.     for (int i = 0; i < size_nm; i++)
  94.     {
  95.         cout << number_mas[i] << endl;
  96.     }
  97.  
  98.     delete[] number_mas;
  99.     delete[] mas;
  100.     return 0;
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement