Содать рандомный вектор и найти в нем число приближенное к числу введенному с консоли - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Добра всем, желательно через функцию

Решение задачи: «Содать рандомный вектор и найти в нем число приближенное к числу введенному с консоли»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. int main(void)
  6. {
  7.   unsigned int N = 0;
  8.   int* a = NULL;
  9.   unsigned int i = 0;
  10.   int M = 0;
  11.   unsigned int closestI = 0;
  12.  
  13.   srand(time(NULL));
  14.   printf("Enter number of elements in array (N):");    
  15.   scanf("%u", &N);
  16.   a = malloc(N * sizeof(*a));
  17.   for(i = 0; i < N; i++)
  18.   {
  19.     a[i] = (rand() % 20) - 10;
  20.     printf("a[%u] = %d\n", i, a[i]);
  21.   }
  22.   printf("Enter number to search:");
  23.   scanf("%d", &M);
  24.   closestI = 0;
  25.   for(i = 1; i < N; i++)
  26.   {
  27.     if ((abs(M - a[i])) < (abs(M - a[closestI])))
  28.     {
  29.       closestI = i;
  30.     }
  31.   }
  32.   printf("Closest value found: a[%u] = %d", closestI, a[closestI]);
  33.   free(a);
  34.   return 0;
  35. }

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы
  2. Объявляем функцию main()
  3. Инициализируем переменные: N (количество элементов в массиве), a (указатель на массив), i (счетчик для цикла), M (число, которое нужно найти в массиве), closestI (индекс ближайшего числа)
  4. Задаем начальное значение для генератора случайных чисел
  5. Выводим сообщение и считываем количество элементов в массиве
  6. Выделяем память под массив
  7. Заполняем массив случайными числами от -10 до 10 с шагом 2
  8. Выводим заполненный массив
  9. Выводим сообщение и считываем число, которое нужно найти в массиве
  10. Инициализируем переменную closestI значением 0
  11. Проходим циклом по массиву, начиная с 1 элемента, т.к. closestI в начале равен 0
  12. Сравниваем разницу между искомым числом и текущим элементом массива и предыдущим closestI. Если текущая разница меньше, то обновляем значение closestI
  13. После прохода по всем элементам массива выводим индекс ближайшего числа и само число
  14. Освобождаем память, выделенную под массив
  15. Возвращаем 0, заканчивая работу функции main()

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы