Originally Posted by
iMalc
Yup, didn't listen to a thing I said!
You're making changes that don't actually get you any closer to your goal, if anything they've taken you backwards. Now the sort isn't working for a totally different reason. You've got the for loops wrong. Here is an example of what should work:
Code:
for (x = 0; x < rows-1; x++)
for (y = x; y < rows-1; y++)
Now I know you've gotten into the habbit of just commenting out stuff that you aren't using temporarily, and never deleting anything because you're never sure of yourself. However, you've got so much commented out junk that you're just making it harder for yourself. Start fresh by making a backup copy and then clearing out all the crap you don't need, and turn your warning level up to the max and delete every variable that is not used. You don't need holder2 or temp3 either, if you'd pay attention to what I told you earlier.
why you are saying that this code is not working??
can you gives me one example for which the code is not working?
Code:
#include <stdio.h>
int main() { //star
int i,j,k,temp;
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
}//end outer for
printf("enter numbers in a row for a matrix:"); //stat input
for (index =0;index<rows; index++)
{
for (kndex =0; kndex<cols; 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
for(i = 0; i <rows - 1; i++) {
for(j = i + 1; j <rows; j++) {
if(rows_sum[i] >rows_sum[j]) {
temp = rows_sum[i];
rows_sum[i] = rows_sum[j];
rows_sum[j] = temp;
//change this line remove the brace
//now swap the rows elements, from row j to row i
for(k = 0; k <cols; k++) {
temp = matrix[i][k]; //here is line 62
matrix[i][k] = matrix[j][k];
matrix[j][k] = temp;
}
} //add this brace
}
}
//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