gpt4 book ai didi

c - 如何按行和列对二维数组进行排序?

转载 作者:行者123 更新时间:2023-11-30 17:10:00 26 4
gpt4 key购买 nike

我想对二维数组进行行和列排序。我可以按行排序,但无法按列排序。我正在尝试使用以下代码来执行此操作:

#include<stdio.h>
void sort_rows(int *arr,int n)
{
int i;
for(i=1;i<n;i++)
{
int key=arr[i];
int j=i-1;
while(j>=0 && key<arr[j])
{
arr[j+1]=arr[j];
j--;
}
arr[j+1]=key;
}
}
void sort_column(int arr[][3],int size)
{
int i,j;
int key,k;
for(i=0;i<size;i++)
{
for(j=1;j<size;j++)
{
key=arr[j][i];
k=j-1;
while(k>=0 && arr[k][i]>key)
{
arr[k+1][i]=arr[k][i];
k--;
}
arr[k+1][i]=key;
}
}
}
int main()
{
int arr[][3]={{9,8,7},{6,5,4},{3,2,1}};
int i,j,size;
size=((sizeof(arr)/sizeof(arr[0][0])/(sizeof(arr[0])/sizeof(arr[0][0])))); //calculates the size of each row.
for(i=0;i<size;i++)
{
sort_rows(arr[i],sizeof(arr[i])/sizeof(arr[i][0]));
}
size=sizeof(arr)/sizeof(arr[0]); //calculates the size of each column.
for(i=0;i<size;i++)
{
sort_column(arr[i][size],size);
}
return 0;
}

我使用选择排序对行和列进行排序。我知道我按列排序的方法是错误的。我在代码中遇到此错误:传递“sort_column”的参数 1 使指针来自整数而不进行强制转换[默认启用]请帮助我更正此代码。

最佳答案

编译器给你的错误准确地告诉你问题是什么。当您调用 sort_column(arr[i][size], size) 时,arr[i][size] 计算结果为 int。但是,正如您所定义的,sort_column() 的第一个参数是一个二维数组。因此,类型不匹配。

关于c - 如何按行和列对二维数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33063509/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com