C Exercises: Search an element in a row wise and column wise sorted matrix
C Array: Exercise-67 with Solution
Write a program in C to search for an element in a row wise and column wise sorted matrix.
Expected Output :
The given array in matrix form is :
15 23 31 39
18 26 36 43
25 28 37 48
30 34 39 50
The given value for searching is: 37
The element Found at the position in the matrix is: 2, 2
The task is to write a C program that searches for a specific element in a matrix that is sorted both row-wise and column-wise. The program should efficiently locate the element, if it exists, and return its position within the matrix. The position should be given in terms of row and column indices.
Visual Presentation:
Sample Solution:
C Code:
#include <stdio.h>
// Function to search for an element in a sorted 2D matrix
int searchElement(int arr2D[4][4], int n, int x) {
int i = 0, j = n - 1;
// Loop to traverse the matrix diagonally
while (i < n && j >= 0) {
// If the element is found in the matrix
if (arr2D[i][j] == x) {
printf("\nThe element found at the position in the matrix is: %d, %d\n", i, j);
return 1;
}
// If the element is smaller, move down in the column
if (arr2D[i][j] < x)
i++;
// If the element is larger, move left in the row
else
j--;
}
printf("\nThe given element was not found in the 2D array.\n");
return 0;
}
int main() {
// Initializing a 4x4 2D array
int arr2D[4][4] = {
{15, 23, 31, 39},
{18, 26, 36, 43},
{25, 28, 37, 48},
{30, 34, 39, 50}
};
int v = 37;
// Printing the original 2D array in matrix form
printf("The given array in matrix form is:\n");
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
printf("%d ", arr2D[i][j]); // Print each element of the matrix
}
printf("\n");
}
// Printing the value for searching
printf("The given value for searching is: %d\n", v);
// Searching for the element in the 2D matrix
searchElement(arr2D, 4, v);
return 0;
}
Output:
The given array in matrix form is : 15 23 31 39 18 26 36 43 25 28 37 48 30 34 39 50 The given value for searching is: 37 The element Found at the position in the matrix is: 2, 2
Flowchart:
C Programming Code Editor:
Previous: Write a program in C to count the number of inversion in a given array.
Next: Write a program in C to to print next greater elements in a given unsorted array. Elements for which no greater element exist, consider next greater element as -1.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://www.w3resource.com/c-programming-exercises/array/c-array-exercise-67.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics