0

I need it in descending order and also the ability to use decimals I tried to put double in everything but it wouldn't work it says that the array doesn't match with int. Help PLEASE!!!

#include <iostream.h>

void selectionSort(int *array,int length)//selection sort function 
{
	int i,j,min,minat;
	for(i=0;i<(length-1);i++)
	{
		minat=i;
		min=array[i];

      for(j=i+1;j<(length);j++) //select the min of the rest of array
	  {
		  if(min>array[j])   //ascending order for descending reverse
		  {
			  minat=j;  //the position of the min element 
			  min=array[j];
		  }
	  }
	  int temp=array[i] ;
	  array[i]=array[minat];  //swap 
	  array[minat]=temp;

		
	}

}



void printElements(int *array,int length) //print array elements
{
	int i=0;
	for(i=0;i<10;i++)
    cout<<array[i]<<endl;
}


void main()
{

	int a[]={9,6,5,23,2,6,2,7,1,8};   // array to sort 
    selectionSort(a,10);                 //call to selection sort  
	printElements(a,10);               // print elements 
}
3
Contributors
15
Replies
20
Views
8 Years
Discussion Span
Last Post by sanfan49er
Featured Replies
  • [QUOTE=sanfan49er;698870]so its not working need help again[/QUOTE] Well your code has obviously changed since you last posted, so post the updated code with a description of the problem you now are having and the exact error message. Please post formatted code and use code tags. [noparse] [code] // paste code … Read More

0

actually i entered it and for some reason its not reconizing one of my decimal numbers i entered 2.5 and ti wouldn't come up the other ones did such as 7.7, 6.7, 8.5

1

so its not working need help again

Well your code has obviously changed since you last posted, so post the updated code with a description of the problem you now are having and the exact error message. Please post formatted code and use code tags.

[code]

// paste code here

[/code]

Comments
Thanks for the help
0
#include <iostream.h>

void selectionSort ( double *array, int length ) //selection sort function
{
  int i, j,minat;
  double min ;
  for ( i = 0; i < ( length - 1 ); i++ )
  {
    minat = i;
    min = array[i];

    for ( j = i + 1; j < ( length ); j++ ) //select the min of the rest of array
    {
      if ( min > array[j] ) //ascending order for descending reverse
      {
        minat = j; //the position of the min element
        min = array[j];
      }
    }
    double temp = array[i] ;
    array[i] = array[minat]; //swap
    array[minat] = temp; 
  }
} 

void printElements ( double *array, int length ) //print array elements
{
  int i = 0;
  for ( i = 0; i < 10; i++ )
    cout << array[i] << endl;
} 

void main()
{

  double a[] = {9, 6.4777, 5, 2.3, 2.8, 6, 2, 7, 1, 8}; // array to sort
  selectionSort ( a, 10 ); //call to selection sort
  printElements ( a, 10 ); // print elements
  
}

Maybe not tested properly...

0

for some reason it was doing the other numbers as double but once the min was doubled it worked out great

0

Mark this thread as solved then, and when you're finished school get a better compiler other than turbo c.

0

thank you and im using blodshed unfortunately its what this school is giving us well atleast in this class I usually use visual studios

0

>im using blodshed

I doubt that. The latest version of bloodshed wouldn't have allowed you to compile and run it with void main, and possibly iostream.h.

And I use bloodshed dev-cpp.

0

sorry failed to put that part I just put the part that I was having problem with.

0

So are you saying you compiled your original code with dev-cpp or visual studio?

And if so what version of visual studio are you using that would allow you get away with void main and iostream.h

0

no no I developed it in Dev-cpp but I like using visual studio's but I am not using it here.

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.