C program to find maximum element in an array

Write a Program To find Maximum Element in 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:

C programming code

#include<stdio.h>
#include<conio.h>
void 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);
  getch();
}
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.

C programming code to find maximum using function

Our function returns the index at which the maximum element is present.
#include<stdio.h>
#include<conio.h>
int find_maximum(int[], int);

void 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);
  getch();
}
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>
#include<conio.h>
void 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);
  getch();
}
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.


No comments:

Post a Comment