# C program to find the largest number in an array C program to find the largest number in an array using a function and without it. We also print the index at which it's present.

## How to find max value in an array?

Algorithm to get max value: we assume that it's present at the beginning of the array. Then compare it with the second element. If the second element is greater than the first, the index is updated. Repeat it till the last index of the array. Similarly, we can find the minimum element in an array.

## C program to find largest number in an array

#include <stdio.h>

int main()
{
int array, size, c, location = 0;

printf("Enter the number of elements in array\n");
scanf("%d", &size);

printf("Enter %d integers\n", size);

for (c = 0; c < size; c++)
scanf("%d", &array[c]);

for (c = 1; c < size; c++)
if (array[c] > array[location])
location = c;

printf("Maximum element is present at location %d and its value is %d.\n", location+1, array[location]);
return 0;
}

If the maximum element is present two or more times in the array, then the index at which it occurs first is printed or the maximum value at the smallest index. You can easily modify the program to print the largest index at which it's present. You can also store all indexes at which it's present in the array.

Output of program: ## C program to find largest number in an array using a function

Our function returns the index at which the maximum element is present.

#include <stdio.h>

int find_maximum(int[], int);

int main() {
int c, array, size, location, maximum;

printf("Input number of elements in array\n");
scanf("%d", &size);

printf("Enter %d integers\n", size);

for (c = 0; c < size; c++)
scanf("%d", &array[c]);

location = find_maximum(array, size);
maximum  = array[location];

printf("Maximum element location = %d and value = %d.\n", location + 1, maximum);
return 0;
}

int find_maximum(int a[], int n) {
int c, index = 0;

for (c = 1; c < n; c++)
if (a[c] > a[index])
index = c;

return index;
}

## C program to find maximum element in an array using pointers

#include <stdio.h>

int main()
{
long array, *maximum, size, c, location = 1;

printf("Enter the number of elements in array\n");
scanf("%ld", &size);

printf("Enter %ld integers\n", size);

for (c = 0; c < size; c++)
scanf("%ld", &array[c]);

maximum  = array;
*maximum = *array;

for (c = 1; c < size; c++)
{
if (*(array+c) > *maximum)
{
*maximum = *(array+c);
location = c+1;
}
}

printf("Maximum element found at location %ld and its value is %ld.\n", location, *maximum);
return 0;
}

The time complexity of the program is O(n), as the time used depends on the size of the input array. In other words, the time to find the maximum increases linearly as array size grows.

We can also sort the array in ascending/descending order to find the largest number in it. After sorting it, the last/first element is the maximum. The complexity of sorting using comparison sorting algorithms is O(nlogn).