Sorting two dimensional arrays

This is a discussion on Sorting two dimensional arrays within the C Programming forums, part of the General Programming Boards category; Hello, i want to write a programme which will sort two dimensional arrays, from a[0][] to a[2][] ascending and a[3][] ...

  1. #1
    Registered User
    Join Date
    May 2010
    Posts
    10

    Sorting two dimensional arrays

    Hello, i want to write a programme which will sort two dimensional arrays, from a[0][] to a[2][] ascending and a[3][] to a[5][] descending. My code is below but there is a mistake on output and i couldn't figure it out, thanks in advance..

    Code:
    #include <stdio.h>
    #define row 6
    #define col 6
    void bubbleSort(int[row][col],int,int,char);
    
    int main()
    {
    	int a[row][col]={{3,4,2,1,0,-1},{5,9,4,-5,-8,7},{8,2,6,5,1,0},{1,5,6,8,0,4},{-6,-9,-4,5,8,-7},{-8,-2,6,-5,1,0}},i,y;
    	char dec='a';
    	bubbleSort(a,1,3,dec);	
    	dec='d';
    	bubbleSort(a,4,6,dec);
    	for(i=0;i<6;i++)
    	{
    		for(y=0;y<col;y++)
    		{
    			printf("a[%d][%d]=%d\n",i,y,a[i][y]);
    		}
    	}
    	system("Pause");
    	return 0;
    
    }
    
    void bubbleSort(int x[row][col],int low,int high,char asc)
    {
    	int i,y,temp,a;
    	for(i=low-1;i<high;i++)
    	{
    		for(a=0;a<6;a++)
    		{
    			for(y=0;y<col;y++)
    			{
    				if(asc=='a')
    				{
    					if(x[i][y]>x[i][y+1])
    					{
    						temp=x[i][y+1];
    						x[i][y+1]=x[i][y];
    						x[i][y]=temp;
    					}
    				}
    				if(asc=='d')
    				{
    					if(x[i][y]<x[i][y+1])
    					{
    						temp=x[i][y+1];
    						x[i][y+1]=x[i][y];
    						x[i][y]=temp;
    					}
    				}
    			}
    		}
    	}
    }

  2. #2
    Registered User
    Join Date
    May 2010
    Posts
    6
    What exactly is wrong with the output? :x

  3. #3
    Registered User
    Join Date
    May 2010
    Posts
    10
    In output, the values are wrong.. For example a[2][] has only one 1 but in output it gives two 1 and it passes 8, like it in other arrays too...

  4. #4
    Registered User
    Join Date
    Jun 2009
    Posts
    466
    EDIT: ignore me, post was in error

  5. #5
    Chi! whiteflags's Avatar
    Join Date
    Apr 2006
    Location
    United States
    Posts
    8,221
    Transpose the matrix.
    Sort each half of the rows like you want.
    Transpose it back to the original orientation.

    I think that's what you want.

  6. #6
    Registered User
    Join Date
    May 2010
    Posts
    10
    Finally i found, thanks for your replies..
    Last edited by ejjjjj; 05-30-2010 at 12:03 PM.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Replies: 26
    Last Post: 06-11-2009, 11:27 AM
  2. Replies: 16
    Last Post: 01-01-2008, 03:07 PM
  3. Replies: 2
    Last Post: 02-23-2004, 05:34 AM
  4. two dimensional arrays
    By ssjnamek in forum C++ Programming
    Replies: 4
    Last Post: 05-01-2002, 08:12 PM
  5. sorting arrays
    By Unregistered in forum C++ Programming
    Replies: 3
    Last Post: 10-13-2001, 05:39 PM

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21