Нахождение минимального элемента в массиве чисел - 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;