Содать рандомный вектор и найти в нем число приближенное к числу введенному с консоли - C (СИ)
Формулировка задачи:
Добра всем, желательно через функцию
Решение задачи: «Содать рандомный вектор и найти в нем число приближенное к числу введенному с консоли»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { unsigned int N = 0; int* a = NULL; unsigned int i = 0; int M = 0; unsigned int closestI = 0; srand(time(NULL)); printf("Enter number of elements in array (N):"); scanf("%u", &N); a = malloc(N * sizeof(*a)); for(i = 0; i < N; i++) { a[i] = (rand() % 20) - 10; printf("a[%u] = %d\n", i, a[i]); } printf("Enter number to search:"); scanf("%d", &M); closestI = 0; for(i = 1; i < N; i++) { if ((abs(M - a[i])) < (abs(M - a[closestI]))) { closestI = i; } } printf("Closest value found: a[%u] = %d", closestI, a[closestI]); free(a); return 0; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Объявляем функцию main()
- Инициализируем переменные: N (количество элементов в массиве), a (указатель на массив), i (счетчик для цикла), M (число, которое нужно найти в массиве), closestI (индекс ближайшего числа)
- Задаем начальное значение для генератора случайных чисел
- Выводим сообщение и считываем количество элементов в массиве
- Выделяем память под массив
- Заполняем массив случайными числами от -10 до 10 с шагом 2
- Выводим заполненный массив
- Выводим сообщение и считываем число, которое нужно найти в массиве
- Инициализируем переменную closestI значением 0
- Проходим циклом по массиву, начиная с 1 элемента, т.к. closestI в начале равен 0
- Сравниваем разницу между искомым числом и текущим элементом массива и предыдущим closestI. Если текущая разница меньше, то обновляем значение closestI
- После прохода по всем элементам массива выводим индекс ближайшего числа и само число
- Освобождаем память, выделенную под массив
- Возвращаем 0, заканчивая работу функции main()
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д