using bubble sort to sort a matrix by sum..
i tried to use buble sort
i marked the start end the end
with comments (start sorting code ,end sorting code)
its not working
Code:
#include <stdio.h>
int main() { //star
int i,j,k,temp,temp3[50];
int rows = 50;
int cols = 50;
int jndex,input;
// int sum2=0; sum2 is never used
/* You can't make an array without telling it's size. rows and cols
have not been assigned a value, yet.
*/
int matrix[50][50];
// int matrix[rows][cols];
// int sum[rows][cols];
int sum[50][50];
// int temp1[rows][cols];
int temp1[50][50];
// int transpose [cols][rows];
int transpose [50][50];
int index,kndex,tndex,gndex,lndex;
int rows_sum[50];
//int rows_sum[rows]; //rows could be ANY value, still.
/* your program isn't designed for this
printf("enter rows and cols [1..50] ==> ");
scanf("%d %d",&rows,&cols);
*/
/* You can save yourself this code, just by making the array initialize to
zero's, when you declare it:
row_sum[4] = { 0 };
This only works when you first declare them, not at any later time
*/
printf("enter the size of a matrix:");
scanf("%d %d",&rows,&cols);
for (index = 0; index < rows; index++)
{
rows_sum[index]=0;
for (kndex = 0; kndex < cols; kndex++)
{
matrix[index][kndex] = 0;
sum[index][kndex] = 0;
temp1[index][kndex] = 0;
transpose[index][kndex] = 0;
}//end inner for
temp3[index] = 0;
}//end outer for
printf("enter numbers in a row for a matrix:"); //stat input
for (index = rows - 1;index >= 0; index--)
{
for (kndex = cols - 1; kndex >= 0; kndex--)
{
scanf("%d", &matrix[index][kndex]);
transpose[kndex][index] = matrix[index][kndex];
}
}
i = getchar(); //needed because of scanf()
//end input
//start power operation
// rows sum
for (index = 0; index < rows; index++)
{
for (kndex = 0; kndex < cols; kndex++){
rows_sum[index]=rows_sum[index]+matrix[index][kndex];
printf("%d ",matrix[index][kndex]);
}
printf("\n");
}
// end rows sum
//star sorting code
for (index=0; index<rows-1; index++) {
for (jndex=0; jndex<rows-1-index; jndex++)
if (rows_sum[jndex+1] < rows_sum[jndex]) { /* compare the two neighbors */
temp = rows_sum[jndex]; /* swap a[j] and a[j+1] */
rows_sum[jndex] = rows_sum[jndex+1];
rows_sum[jndex+1] = temp;
for (kndex=0; kndex<rows; kndex++){//inner for
temp3[kndex] =matrix[index][kndex];
matrix[jndex][kndex]=matrix[jndex+1][kndex];
rows_sum[jndex+1] =temp3[kndex];
}//end inner
//end sorting code
}
}
//print the swapped matrix
for(i = 0; i < rows; i++) {
putchar('\n');
for(j = 0; j < cols; j++)
printf(" %d", matrix[i][j]);
}
i = getchar();
return 0;
}//end main
how to find sub matrices..
i solved it like you said
thanks
:)