我需要按升序(所有元素)对给定矩阵进行排序。按c中的升序排列矩阵的所有元素
让我们假设给定矩阵是
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瓦特= 0 因为 W的= j的 我需要的东西来代替W¯¯修复它 但我不知道什么来取代它
我的C ode:
#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");
}
}
定义 “坏的结果。” –
欢迎来到Stack Overflow!要求人们发现代码中的错误并不是特别有效。您应该使用调试器(或者添加打印语句)来分析问题,追踪程序的进度,并将其与预期发生的情况进行比较。只要两者发生分歧,那么你就发现了你的问题。 (然后如果有必要,你应该构建一个[最小测试用例](http://sscce.org)。) –
当k = 0 w = 0 ..它确定它确实不错..它计数 k = 0 w = 1 但是然后..它跳转到k = 1 w = 1 ..没有检查k = 1 w = 0 因为** w^= j的** 我需要更换** W =财产以后“**解决它的..但我不与 知道什么来取代它 –