Troubleshooting a Segmentation Fault in a Selection Sort

Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
2 replies · 2K views
george2625
Messages
3
Reaction score
0
please help me with a c code for the merge sort... and i am getting a segmentation fault in running this selection sort,,, please help...

#include <stdio.h>

int main( )
{
int arr[10];
int i,j,temp;
for ( i = 0 ; i<10 ; i++ )
{
printf("enter the numbers: \n");
scanf("%d \n", arr);
}
for ( i = 0 ; i <8 ; i++ )
{
for ( j = i + 1 ; j <9 ; j++ )
{
if ( arr > arr[j] )
{
temp = arr ;
arr = arr[j] ;
arr[j] = temp ;
}
}
}
for ( i = 0 ; i <10 ; i++ )
printf("the sorted array is: %d \n", &arr);
return 0;
}
 
Physics news on Phys.org


george2625 said:
please help me with a c code for the merge sort... and i am getting a segmentation fault in running this selection sort,,, please help...

scanf("%d \n", arr);

The problem is in your scanf statement. Scanf needs a reference and "arr" is already de-referenced. You need to prefix it with "&".
 
You probably wanted those loops to be ... ; i < 9; ... and ... ; j < 10; .... Also this algorithm is not a merge sort, it's a bubble (down) sort.