二维数组排序c语言指针问题

输入一个3*4的二维数组

对二维数组里面的每一行进行排序;

输出排序后的二维数组

预设代码

前置代码

view plainprint?
/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */

#include <stdio.h>
#include <stdlib.h>

#define ROW 3
#define COL 4

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int resort(int (*pa)[COL],int row,int col);

int main(int argc, char *argv[]) {

int a[ROW][COL];
// int num;

int (*pa)[COL];

int i=0,j=0;
for(i=0;i<ROW;i++)
{
for(j=0;j<COL;j++)
scanf("%d",&a[i][j]);
}
pa=a;

resort(a,ROW,COL);

for(i=0;i<ROW;i++)
{
for(j=0;j<COL;j++)
printf("%3d",a[i][j]);
printf("\n");
}
return 0;
}

/* PRESET CODE END - NEVER TOUCH CODE ABOVE */
测试输入关于“测试输入”的帮助 期待的输出关于“期待的输出”的帮助 时间限制关于“时间限制”的帮助 内存限制关于“内存限制”的帮助 额外进程关于“{$a} 个额外进程”的帮助
测试用例 1 以文本方式显示
12 5 6 89↵
56 78 66 13↵
89 12 6 3↵
以文本方式显示
5 6 12 89↵
13 56 66 78↵
3 6 12 89↵

#include <stdio.h> 
#include <stdlib.h> 

#define ROW 3 
#define COL 4 

/* run this program using the console pauser or add your own getch, system("pause") or input loop */ 
void sort(int a[],int n) {
int i,j,k,t;
for(i = 0; i < n - 1; ++i) {
k = i;
for(j = k + 1; j < n; ++j) {
if(a[k] > a[j]) k = j;
}
if(i != k) {
t = a[i];
a[i] = a[k];
a[k] = t;
}
}
}

int resort(int (*pa)[COL],int row,int col) {
int i;
for(i = 0; i < row; ++i) sort(pa[i],col);
return 1;
}

int main(int argc, char *argv[]) {
int a[ROW][COL]; 
// int num; 
int (*pa)[COL]; 
int i,j; 
for(i = 0;i < ROW;i++) { 
for(j = 0;j < COL;j++) 
scanf("%d",&a[i][j]); 

pa = a; 
resort(a,ROW,COL); 
for(i = 0;i < ROW;i++) { 
for(j = 0;j < COL;j++) 
printf("%3d",a[i][j]); 
printf("\n"); 

return 0; 
}

温馨提示:答案为网友推荐,仅供参考