Вычислить номер максимального элемента массива - C (СИ)
Формулировка задачи:
Здравствуйте друзья
Помогите решить задание:
В одномерном массиве, состоящем из n целочисленных элементов, вычислить номер максимального элемента массива. Массив заполняется случайными числами, размерность массива вводится с клавиатуры.
Решение задачи: «Вычислить номер максимального элемента массива»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
/* прототип. Описывайте вверху подобным образом свои функции, а сами функции размещайте под main */
int random (int a);
int main()
{
srand(time(NULL));
int size, max=0, i;
int * a;
/* если размер массива задается пользователем необходимо выделять память
* динамически, используя malloc.
* если создается массив целых чисел то (int*)malloc(sizeof(int)*размер).
*/
/* При динамическом выделении памяти, возможна ситуация, когда система по каким-то причинам не может выделить память, в таком случае
* программа не сможет выполнить свои задачи */
printf ("Vvedite size:");
scanf("%d",&size);
a = (int*)malloc(sizeof(int)*size);
if (a==NULL) exit(0);
for (i=0;i<size;i++)
{
a[i]=random(100); //здесь вы передаете в функцию random значение, которое потом будет использовано как максимум диапазона случайных чисел
if (a[i] > max)
max=a[i];
printf("a[%d]=%d\n",i,a[i]);
}
printf("Max value=%d\n",max);
free(a); //динамически выделенную память нужно возвращать системе.
return 0;
}
int random (int a)
{
return rand()%a;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с стандартными функциями C, а также для генерации случайных чисел.
- Определяем прототип функции, которая будет вычислять максимальное значение массива.
- В функции main() инициализируем генератор случайных чисел с помощью функции srand(time(NULL)).
- Создаем переменные: размер массива size, номер максимального элемента max и счётчик i.
- Выделяем динамическую память под массив a с помощью функции malloc(sizeof(int)*size).
- Если память не может быть выделена, то выходим из программы с помощью функции exit(0).
- Заполняем массив a случайными числами в диапазоне от 1 до 100 с помощью функции random(100).
- Находим максимальное значение массива, сравнивая каждый элемент с текущим максимумом.
- Выводим на экран значения каждого элемента массива и его номер.
- Выводим на экран максимальное значение массива.
- Освобождаем динамическую память с помощью функции free(a).
- Возвращаем 0 из функции main(), что означает корректное завершение программы.
- В функции random(a) генерируем случайное число в диапазоне от 1 до a с помощью функции rand()%a.
- Возвращаем полученное случайное число в качестве результата работы функции.