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

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

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

Написать программу нахождения минимального элемента в массиве чисел, оперирующую не переменными, а указателями.
#include <stdio.h>
#include <stdlib.h>
 
int main(){
 int n,i;
 printf("Введите количество элементов: \n");
 scanf ("%d",&n);
 int *a = (int *)malloc(sizeof(int)*(n));
 for (i=0;i<n;i++)
 scanf("%d",&a[i]);
 
 int min = a[0];
 for (i=0;i<n;i++)
 if(a[i]<min)
    {
        min=a[i];
    }
 
printf("Минимальный элемент = %d\n",min);
return 0;
}

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

textual
Листинг программы
#include <stdio.h>
#include <time.h>
#include <Windows.h>
#define N 10
#define LOW_BORDER  -100
#define HIGH_BORDER  100
 
int main(int argc, char *argv[])
{
    srand(time(NULL));
 
    int *array, *minimum, size, c, i, location = 1;
    
    printf("Enter the number of elements in array\n");
    scanf("%d", &size);
    array = malloc(size * sizeof(int));
    printf("Randomly generated array of %d elements:\n", size);
    for (i = 0; i < size; i++) {
        array[i] = rand() % (HIGH_BORDER + 1 - LOW_BORDER) + LOW_BORDER;
        printf("%2d ", array[i]);
    }
 
 
    minimum = array;
    *minimum = *array;
 
    for (c = 1; c < size; c++)
    {
        if (*(array + c) < *minimum)
        {
            *minimum = *(array + c);
            location = c + 1;
        }
    }
 
    printf("\nMinimum element found at location %d and it's value is %d.\n", location, *minimum);
 
    system("pause");
    return 0;
}

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

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