# 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 using a function. We also print the index at which it's present. The algorithm to find maximum is: we assume that it's present at the beginning of the array. Then compare it with the other array elements, if an element is greater than it, the index at which it's present is updated. Similarly, we can find the minimum element in an array.

## C program to find maximum element 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.