我需要按升序(所有元素)对给定矩阵进行排序。
让我们假设给定矩阵是
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它没问题时它很好
,它countinues k = 0 w = 1但是然后它跳到
k = 1 w = 1而不检查k = 1 w = 0因为w = j我需要用替换w有什么可以解决的,但我不知道用什么来代替它
我的代码:
#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");
}
}