#include "stdafx.h" #include #include #include using namespace std; int min_rasnost_modul(int *in_mas, unsigned int in_dlina) { int a = 0, min; in_dlina--; min = abs(abs(in_mas[1]) - abs(in_mas[0])); for (unsigned int i = 1; i < in_dlina; i++) { a = abs(abs(in_mas[i + 1]) - abs(in_mas[i])); if (a <= min) min = a; } return min; } int *novmas(int *in_mas, int min, unsigned int in_dlina, int *size_nm) { int size_nm_buf = *size_nm; int *number_mas = new int[in_dlina]; unsigned int j = 0; for (unsigned int i = 0; i < in_dlina; i++) { if (in_mas[i] < min) { number_mas[j] = i; j++; size_nm_buf++; } } *size_nm = size_nm_buf; return number_mas; } void mascin(int *in_mas, unsigned int size) { cout << "Введите каждый элемент массива" << endl; for (unsigned int i = 0; i < size; i++) { cout << "mas[" << i << "] = "; cin >> in_mas[i]; } } void masrand(int *in_mas, unsigned int size) { for (unsigned int i = 0; i < size; i++) { in_mas[i] = rand() % 10 - 5; cout << "mas[" << i << "] = " << in_mas[i] << endl; } } int* creat_mas(unsigned int size) { int *mas = new int[size]; char answer; cout << "Вводить ли значения элементов массива(1) или задавать их рандомно(2)? (1/2)" << endl; while (true) { cin >> answer; if (answer == '1' || answer == '2') break; else cout << "Ошибка, повторите ввод...\n"; } if (answer == '1') mascin(mas, size); else masrand(mas, size); return mas; } void newmas(int*& mas, unsigned int& size) { cout << "Введите длину массива..." << endl; cin >> size; while (!size) { cout << "Ошибка, введите повторно..." << endl; cin >> size; } mas = creat_mas(size); } int main() { setlocale(0, ""); srand(time(NULL)); unsigned int size; int* mas; newmas(mas, size); int size_nm = 0; int *number_mas = novmas(mas, min_rasnost_modul(mas, size), size, &size_nm); //cout << "!size_nm = " << size_nm << endl; for (int i = 0; i < size_nm; i++) { cout << number_mas[i] << endl; } delete[] number_mas; delete[] mas; return 0; }