Lets write a C program to find biggest or the largest element in an array, without sorting the elements. And also print the position at which the biggest number is present in the array.
Related Read:
Find Biggest In An Array, Without Sorting It: C
Page Contents
Enter 5 integer numbers
5
2
6
4
3
Biggest of 5 numbers is 6, at position 3
Method 1
#include<stdio.h> #define N 5 int main() { int a[N], i, big, pos; printf("Enter %d integer numbers\n", N); for(i = 0; i < N; i++) { scanf("%d", &a[i]); if(i == 0 || big < a[i]) { big = a[i]; pos = i + 1; } } printf("\nBiggest of %d numbers is %d, at position %d.\n", N, big, pos); return 0; }
Output 1:
Enter 5 integer numbers
1
3
2
5
8
Biggest of 5 numbers is 8, at position 5.
Output 2:
Enter 5 integer numbers
10
2
5
9
3
Biggest of 5 numbers is 10, at position 1.
We ask the user to input N integer numbers. N being a Macro. In above source code N is 5. So user enters 5 integer numbers. While the user inputs numbers we check if it’s the first number input by the user. If its the first number, then we assign that first number entered by the user to variable big and assign 1 to variable pos, indicating that its the first element in the array.
Next, for each consecutive iteration of the for loop we check if the new value entered by the user is greater than the value present in variable big. If it’s true, then we assign the new value entered by the user to variable big and also update the value of pos accordingly.
Once i < N condition is false, control exits for loop and we print the value present inside variable big and pos which will have biggest of N numbers or the biggest element of the array and position of that element in the array.
If int a[5] = {2, 4, 3, 4, 5};
for(i = 0; i < N; i++) { scanf("%d", &a[i]); if(i == 0 || big < a[i]) { big = a[i]; pos = i + 1; } }
index | a[index] | big | pos = index + 1 |
---|---|---|---|
0 | a[0] = 2 | 2 | 1 |
1 | a[1] = 4 | 4 | 2 |
2 | a[2] = 3 | ||
3 | a[3] = 4 | ||
4 | a[4] = 5 | 5 | 5 |
5 |
a[5] = {2, 4, 3, 4, 5}
big = 5;
pos = 5;
Method 2
#include<stdio.h> #define N 5 int main() { int a[N], i, big, pos; printf("Enter %d integer numbers\n", N); for(i = 0; i < N; i++) { scanf("%d", &a[i]); } big = a[0]; pos = 1; for(i = 1; i < N; i++) { if(big < a[i]) { big = a[i]; pos = i + 1; } } printf("\nBiggest of %d numbers is %d, at position %d.\n", N, big, pos); return 0; }
Output 1:
Enter 5 integer numbers
1
5
6
3
0
Biggest of 5 numbers is 6, at position 3.
Output 2:
Enter 5 integer numbers
2
4
3
4
5
Biggest of 5 numbers is 5, at position 5
Here we accept N integer numbers from the user. Next we assign the first element of the array to big and 1 to pos. Now we use another for loop to loop through the array. Inside for loop we check if the value present inside variable big is less than the value present at a[i]. If it’s true, then we assign the value of a[i] to big and value of (i+1) to variable pos.
At the end of for loop, variable big and pos will have biggest element of the array and the position at which this number is present in the array.
Note: Since we assign the value of first element of the array(which is present at location a[0]) to variable big, while comparing with other elements of the array, we start comparing from a[1] till a[N-1]. That’s the reason we’ve assigned initial value of i to 1 in the second for loop.
Since a[0] is assigned to variable big, there is no point in comparing big with a[0]. So we start comparison from a[1].
For list of all c programming interviews / viva question and answers visit: C Programming Interview / Viva Q&A List
For full C programming language free video tutorial list visit:C Programming: Beginner To Advance To Expert