You are here

C program to find maximum element in an array

C program to find the maximum or the largest element and the location (index) at which it's present in an array. The algorithm to find maximum is: we assume that it's present at the beginning of the array and stores that value in a variable. Then we compare it with the other array elements one by one, if any element is greater than our assumed maximum, then the maximum value and the index at which it occurs are updated. Similarly, we can find the minimum element in an array.

C programming code

#include <stdio.h>

int main()
{
  int array[100], maximum, size, c, location = 1;

  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]);

  maximum = array[0];

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

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

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

Download Maximum element in array program.

Output of program:
Maximum element in array c program

C programming code to find maximum using 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[100], 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, max, index;
 
  max = a[0];
  index = 0;
 
  for (c = 1; c < n; c++) {
    if (a[c] > max) {
       index = c;
       max = a[c];
    }
  }
 
  return index;
}

C programming code using pointers

#include <stdio.h>

int main()
{
  long array[100], *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.

Share this