Содать рандомный вектор и найти в нем число приближенное к числу введенному с консоли - 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;
}

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

  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
Похожие ответы