Нахождение минимального элемента в массиве чисел - 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;
- }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы:
- #include
для работы с функциями ввода-вывода - #include
для работы со временем - #include
для работы с консолью - #define N 10 задаем размер массива
- #define LOW_BORDER -100 задаем нижнюю границу для случайного генерирования чисел
- #define HIGH_BORDER 100 задаем верхнюю границу для случайного генерирования чисел
- #include
- Создаем основную функцию программы:
- *int main(int argc, char argv[])**
- Инициализируем генератор случайных чисел:
- srand(time(NULL));
- Выделяем память под массив:
- int array = malloc(size sizeof(int));
- Считываем размер массива:
- printf(
Enter the number of elements in array\n
); - scanf(
%d
, &size);
- printf(
- Генерируем случайные числа и выводим их на экран:
- for (i = 0; i < size; i++) {
- array[i] = rand() % (HIGH_BORDER + 1 - LOW_BORDER) + LOW_BORDER;
- printf(
%2d
, array[i]);
- }
- for (i = 0; i < size; 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);**
- *printf(
- Ожидаем нажатия клавиши для выхода из программы:
- system(
pause
);
- system(
- Завершаем программу:
- return 0;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д