-1
有用戶指針的二維數組,每行填充隨機數,程序計數總和。我需要按每行的總和對數組進行排序並打印出來。例如,如果我們有數組:1 2 2(sum = 5)2 9 9(sum = 20)2 1 6(sum = 9) 輸出應該是:1 2 2(sum = 5)2 1 6 9)2 9 9(總和= 20)。感謝幫助。二維數組,按總和對行排序
int main() {
int i, j, row, column, **array,sum;
time_t seconds;
time (&seconds);
srand ((unsigned int)seconds);
printf ("Write number of rows:");
scanf ("%d", &row);
printf ("Write number of columns:");
scanf ("%d", &column);
array=(int**) malloc (row * sizeof(int *));
if (array!=NULL){
for (i=0; i<row;i++)
array[i]= (int*) malloc (column *sizeof(int));
}
for (i=0; i<row;i++)
for (j=0; j<column;j++)
array[i][j]=(rand()%100);
for (i=0; i<row;i++){
for (j=0; j<column;j++)
printf("%d ",array[i][j]);
printf ("\n");
}
for(i=0;i<row;i++){ //find sum of each row
sum=0;
for(j=0;j<column;j++){
sum=sum+array[i][j];
}
printf("%d \n",sum);
}
return 0;
}
的!標準警告:[不要投射malloc的結果](http://stackoverflow.com/q/605845/1151654) – Eregrith
您還應該更好地格式化和縮進您的代碼,它只會幫助您。 – Eregrith
也不要使用像'*(*(array + i)+ j)這樣糟糕的語法' - 編寫'array [i] [j]''''更容易也更直觀。 –