C Programs To Find the largest element in a column
A 2D array is of the form M*N where M stands for the number of rows and N stands for the number of column. Given a 2D array and our task is to find the largest element in a column in an array. But before moving forward, if you are not familiar with the concept of array then, do check the article on Arrays in C.
Input: 1 2 3
4 5 6
7 8 9
Output:
Largest element in column 1 is 7
Largest element in column 2 is 8
Largest element in column 3 is 9
This problem can be solved in the following ways:
Method 1: Without using Functions
Method 2: Using Functions
Let us look at each of the methods separately.
Program 1: Find the Largest Element in a Column
In this method, we will directly find the largest element in a column. Firstly, we declare a 2-D array and then initialize it. Then, we find the largest element in the column.
Algorithm:
- Start
- Declare a 2D array.
- Initialize the 2D array.
- The idea is to run the loop for the total number of columns.
- Check each element for the column and find the maximum element.
- Now print the elements.
- Stop.
Below is the code for the same.
In the below program, we will find the largest element in a column directly. Firstly, a 2D array is declared and then is initialized. Then, we will find the largest element in a column directly.
#include <stdio.h>
int main()
{
int m,n; //Matrix Size Declaration
printf("Enter the number of rows and column: \n");
scanf("%d %d",&m,&n); //Matrix Size Initialization
int arr[10][10]; //Matrix Size Declaration
printf("\nEnter the elements of the matrix: \n");
for(int i=0;i<m;i++) //Matrix Initialization
{
for(int j=0;j<n;j++)
{
scanf("%d",&arr[i][j]);
}
}
printf("\nThe elements in the matrix are: \n");
for(int i=0;i<m;i++) //Print the matrix
{
for(int j=0;j<n;j++)
{
printf("%d ",arr[i][j]);
}
printf("\n");
}
int i = 0, j;
int max = 0;
int res[m];
while (i < n) //Check for the largest element in an array
{
for ( j = 0; j < m; j++)
{
if (arr[j][i] > max) //Check if the element is greater than the maximum element of the column and replace it
{
max = arr[j][i];
}
}
res[i] = max;
max = 0;
i++;
}
for(int i = 0; i < n; i++) //Print thee largest element
{
printf("Largest element in row %d is %d \n", i, res[i]);
}
return 0;
}
Enter the number of rows and column: 3 3
Enter the elements of the matrix: 5 7 6 3 4 9 7 8 2
The elements in the matrix are:
5 7 6
3 4 9
7 8 2
Largest element in row 0 is 7
Largest element in row 1 is 8
Largest element in row 2 is 9
Program 2: Find the Largest Element in a Column
In this method, we will call another function to find the largest element in a column. Firstly, we declare a 2-D array and then initialize it. Then, we call a function to find the largest element in the column.
Algorithm:
- Start
- Declare a 2D array.
- Initialize the 2D array.
- Now call a function that will find the maximum element in a column.
- The idea here is to run the loop for the total number of columns.
- Check each element for the column and find the maximum element.
- Now print the elements.
- Stop.
Below is the code for the same.
The largest element in a row is found out directly by using functions.
#include <stdio.h>
void maxElement(int arr[10][10],int m,int n) //Function Definition
{
int i = 0, j;
int max = 0;
int res[m];
while (i < n) //Check for the largest element in an array
{
for ( j = 0; j < m; j++)
{
if (arr[j][i] > max) //Check if the element is greater than the maximum element of the column and replace it
{
max = arr[j][i];
}
}
res[i] = max;
max = 0;
i++;
}
for(int i = 0; i < n; i++) //Print thee largest element
{
printf("Largest element in row %d is %d \n", i, res[i]);
}
}
int main()
{
int m,n; //Matrix Size Declaration
printf("Enter the number of rows and column: \n");
scanf("%d %d",&m,&n); //Matrix Size Initialization
int arr[10][10]; //Matrix Size Declaration
printf("\nEnter the elements of the matrix: \n");
for(int i=0;i<m;i++) //Matrix Initialization
{
for(int j=0;j<n;j++)
{
scanf("%d",&arr[i][j]);
}
}
printf("\nThe elements in the matrix are: \n");
for(int i=0;i<m;i++) //Print the matrix
{
for(int j=0;j<n;j++)
{
printf("%d ",arr[i][j]);
}
printf("\n");
}
maxElement(arr,m,n); //Function Call
return 0;
}
Enter the number of rows and column: 3 3
Enter the elements of the matrix: 4 7 5 3 4 9 6 8 2
The elements in the matrix are:
4 7 5
3 4 9
6 8 2
Largest element in row 0 is 6
Largest element in row 1 is 8
Largest element in row 2 is 9