Нахождение минимального элемента в массиве чисел - C (СИ)

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

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

Написать программу нахождения минимального элемента в массиве чисел, оперирующую не переменными, а указателями.
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main(){
  4. int n,i;
  5. printf("Введите количество элементов: \n");
  6. scanf ("%d",&n);
  7. int *a = (int *)malloc(sizeof(int)*(n));
  8. for (i=0;i<n;i++)
  9. scanf("%d",&a[i]);
  10. int min = a[0];
  11. for (i=0;i<n;i++)
  12. if(a[i]<min)
  13. {
  14. min=a[i];
  15. }
  16. printf("Минимальный элемент = %d\n",min);
  17. return 0;
  18. }

Решение задачи: «Нахождение минимального элемента в массиве чисел»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <time.h>
  3. #include <Windows.h>
  4. #define N 10
  5. #define LOW_BORDER  -100
  6. #define HIGH_BORDER  100
  7.  
  8. int main(int argc, char *argv[])
  9. {
  10.     srand(time(NULL));
  11.  
  12.     int *array, *minimum, size, c, i, location = 1;
  13.    
  14.     printf("Enter the number of elements in array\n");
  15.     scanf("%d", &size);
  16.     array = malloc(size * sizeof(int));
  17.     printf("Randomly generated array of %d elements:\n", size);
  18.     for (i = 0; i < size; i++) {
  19.         array[i] = rand() % (HIGH_BORDER + 1 - LOW_BORDER) + LOW_BORDER;
  20.         printf("%2d ", array[i]);
  21.     }
  22.  
  23.  
  24.     minimum = array;
  25.     *minimum = *array;
  26.  
  27.     for (c = 1; c < size; c++)
  28.     {
  29.         if (*(array + c) < *minimum)
  30.         {
  31.             *minimum = *(array + c);
  32.             location = c + 1;
  33.         }
  34.     }
  35.  
  36.     printf("\nMinimum element found at location %d and it's value is %d.\n", location, *minimum);
  37.  
  38.     system("pause");
  39.     return 0;
  40. }

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

  1. Включаем необходимые заголовочные файлы:
    • #include для работы с функциями ввода-вывода
    • #include для работы со временем
    • #include для работы с консолью
    • #define N 10 задаем размер массива
    • #define LOW_BORDER -100 задаем нижнюю границу для случайного генерирования чисел
    • #define HIGH_BORDER 100 задаем верхнюю границу для случайного генерирования чисел
  2. Создаем основную функцию программы:
    • *int main(int argc, char argv[])**
  3. Инициализируем генератор случайных чисел:
    • srand(time(NULL));
  4. Выделяем память под массив:
    • int array = malloc(size sizeof(int));
  5. Считываем размер массива:
    • printf(Enter the number of elements in array\n);
    • scanf(%d, &size);
  6. Генерируем случайные числа и выводим их на экран:
    • for (i = 0; i < size; i++) {
      • array[i] = rand() % (HIGH_BORDER + 1 - LOW_BORDER) + LOW_BORDER;
      • printf(%2d, array[i]);
    • }
  7. Находим минимальный элемент:
    • minimum = array;
    • minimum = array;
    • for (c = 1; c < size; c++)
      • if ((array + c) < minimum)
      • {
        • minimum = (array + c);
        • location = c + 1;
      • }
  8. Выводим результат на экран:
    • *printf(\nMinimum element found at location %d and it's value is %d.\n, location, minimum);**
  9. Ожидаем нажатия клавиши для выхода из программы:
    • system(pause);
  10. Завершаем программу:
    • return 0;

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


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

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

7   голосов , оценка 4.286 из 5

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

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

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