0
this c program not running properly
I made a program to determine second largest element in an array:- #include<stdio.h> #include<conio.h> int main() { int a[10],i,j,l=0,b; for(i=0;i<10;i++) { scanf("%d",&a[i]); } for(i=0;i<10;i++) { for(j=0;j<10;j++) { if(a[i]<a[j]&&a[j]!=b) { l++; b=a[i]; } } if(l==1) { printf("Second largest = %d",a[i]); break; } } return 0; } but it is not printing anything. why? pls help.
11 Answers
+ 13
Are you trying to run this using Code Playground?
+ 9
//Try this.
//Just FYI, C++ is backwards compatible with C, but loops and input does not work well on Code Playground. scanf() is also not recognised.
// This works, but you have to modify it to take user input.
#include<stdio.h>
int main()
{
int a[10] = {1,2,4,3,9,8,0,5,6,7};
for (int i = 0; i < 10; i++)
for (int j = 0; j < 10 - 1 - i; j++)
if (a[j] < a[j + 1])
{
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
printf("Second largest = %d",a[1]);
return 0;
}
+ 9
For one, b was never initialized.
+ 5
it will work in c++
+ 4
hasty is right , you can make it using any type of sorting and then simply displaying the second element of the array by using a[1].
+ 3
run in in c++
+ 1
what is wrong with my code but.
+ 1
This version does not modify the order of data, you can use this version (it also go through the array only once)
#include <stdio.h>
/*for random*/
#include <stdlib.h>
#include <time.h>
#define SIZE 10
int main(){
int a[SIZE], min[2];
unsigned i;
if(SIZE >= 2){
/*randomely initializing the array*/
srand(time(0));
puts("Your array is :");
for(i = 0; i < SIZE; ++i){
a[i] = rand();
printf("%d\n",a[i]);
}
putchar('\n');
/*now we find the second minimum without changing the array*/
if(a[0] > a[1]){
min[0] = a[1];
min[1] = a[0];
}else{
min[0] = a[0];
min[1] = a[1];
}
for(i = 2; i < SIZE; ++i){
if(a[i] < min[1]){
if(a[i] < min[0]){
min[1] = min[0];
min[0] = a[i];
}else
min[1] = a[i];
}
}
printf("Second minimum is %d\n",min[1]);
}else
puts("The array can't have a second minimum as its size is lower than 2.");
return 0;
}
0
no. code playground don't have c
0
why is code not working but?