特定の行列を昇順 (すべての要素) で並べ替える必要があります。
与えられた行列が
2 0 4 -1
-3 1 5 5
6 4 4 9
-5 8 10 12
ソートされた行列は次のようになります。
-5 -3 -1 0
1 2 4 4
4 5 5 6
8 9 10 12
私のコードは悪い結果をもたらします。
k=0 w=0 の場合は問題ありませんが
、k=0 w=1 をカウントし
ますが、w=j を w=j に置き換える必要があるため、k=1 w=0 をチェックせずに k=1 w=1にジャンプします。それを修正する何かが、私はそれを置き換えるものがわからない
私のコード:
#include <stdio.h>
#include <stdlib.h>
#define n 2
int main()
{
int arr[n][n],min,i,j,tmp,y,k,w,z=0,q=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
printf("Enter number: ");
scanf("%d",&arr[i][j]);
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
min=arr[i][j];
for(k=i;k<n;k++)
{
for(w=j;w<n;w++)
if(arr[k][w]<min)
{
min=arr[k][w];
z=k;
q=w;
}
w=0;
}
tmp=arr[i][j];
arr[i][j]=min;
arr[z][q]=tmp;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%d ",arr[i][j]);
printf("\n");
}
}