Написать функцию нахождения максимального значения в массиве - C (СИ)
Формулировка задачи:
Помогите с заданием:
Числовой массив B (вещественный) содержит k элементов. Элементы массива вводится с клавиатуры. Написать подпрограммы создания массива и вывода его на экран. В первом задании требуется написать функцию нахождения максимального значения, а во втором - среднего арифметического указанных в условии элементов (между понимать строго – не включая найденные позиции):
1) max (|b1|,...,|bk|) для |bi|<Y
2) Среднее арифметическое элементов, расположенных между первым и последним положительными элементами
Решение задачи: «Написать функцию нахождения максимального значения в массиве»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv) {
//Функция нахождения максимального элемента в массиве - возращает его номер
int getmax(float mas [], int k) {
if (k<1) return(-1);
int num=0;
float max=mas[num];
int i;
for (i=1;i<k;i++) {
if( mas[i]>max ) { max=mas[i]; num=i; }
}
return(num);
}
//ввод данных
int k,i;
float d;
printf("введите размер массива :");
scanf("%d",&k);
float B[k];
for (i=0;i<k;i++) {
printf("B[%d]=",i);
scanf("%f",&d);
B[i]=d;
}
int num=getmax(B,k);
//вывод результата
if (num<0) printf("Не задан размер массива");
else {
printf("\n\n массив из %d ээлементов",k);
for (i=0;i<k;i++) { printf("\n B[%d]=",i);printf("%f",B[i]); }
printf("\n Максимальный элемент в массиве B[%d]=",num); printf("%f",B[num]);
}
return (EXIT_SUCCESS);
}
Объяснение кода листинга программы
- Включаются заголовочные файлы stdio.h и stdlib.h
- Определяется функция main, которая является точкой входа в программу
- Внутри функции main определяется функция getmax, которая принимает массив и его размер в качестве аргументов и возвращает номер максимального элемента в массиве
- Далее в функции main происходит ввод данных: с помощью функции scanf считывается размер массива и с помощью цикла for происходит ввод элементов массива
- После ввода данных вызывается функция getmax для нахождения максимального элемента в массиве
- Результат сохраняется в переменной num
- Если размер массива не задан, выводится сообщение об ошибке
- В противном случае выводится сообщение о размере массива и его элементах
- Выводится максимальный элемент массива
- Функция main возвращает значение EXIT_SUCCESS, что означает успешный конец работы программы