C语言二维指针练习使用二维指针用冒泡法将3*5二维数组中每行元素,按从大到小排序。
请尽量简单易懂些,本人学没多长时间。
#include <stdio.h>
int main()
{
int a[3][5] = {{1,4,5,2,6},{2,6,3,4,1},{6,9,4,3,8}}; //对数组初始化
int i,j;
int k;
int t;
for(k = 0; k < 3; k++)
{
for(i = 0; i < 4; i++)
{
for(j = 0; j < 4-i; j++)
{
if(a[k][j] >a[k][j+1])
{
t = a[k][j];
a[k][j] = a[k][j+1];
a[k][j+1] = t;
}
}
}
}
for(i = 0; i < 3; i++) //输出数组
{
for(j = 0; j < 5; j++)
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}追问
void Sort(int x[], int n);
int main()
{
int a[3][5] = {1,56,3,9,5,27,7,8,82,35,22,33,1,56,78};
int i,j,k;
int *p;
for(k = 0; k < 3; k++)
{
p = *(a+k);
Sort(p,5); //调用排序函数
}
for(i = 0; i < 3; i++)
{
for(j = 0; j < 5; j++)
{
printf("%4d",*(*(a+i)+j));
}
printf("\n");
}
return 0;
}
void Sort(int x[], int n) //自定义排序函数
{
int i, j, t;
for(i = 0; i < n-1; i++)
{
for(j = 0; j < n-i-1; j++)
{
if(x[j] > x[j+1])
{
t = x[j];
x[j] = x[j+1];
x[j+1] = t;
}
}
}
}
int main()
{
int a[3][5] = {{1,4,5,2,6},{2,6,3,4,1},{6,9,4,3,8}}; //对数组初始化
int i,j;
int k;
int t;
for(k = 0; k < 3; k++)
{
for(i = 0; i < 4; i++)
{
for(j = 0; j < 4-i; j++)
{
if(a[k][j] >a[k][j+1])
{
t = a[k][j];
a[k][j] = a[k][j+1];
a[k][j+1] = t;
}
}
}
}
for(i = 0; i < 3; i++) //输出数组
{
for(j = 0; j < 5; j++)
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}追问
我要的是指针亲
追答#include <stdio.h>void Sort(int x[], int n);
int main()
{
int a[3][5] = {1,56,3,9,5,27,7,8,82,35,22,33,1,56,78};
int i,j,k;
int *p;
for(k = 0; k < 3; k++)
{
p = *(a+k);
Sort(p,5); //调用排序函数
}
for(i = 0; i < 3; i++)
{
for(j = 0; j < 5; j++)
{
printf("%4d",*(*(a+i)+j));
}
printf("\n");
}
return 0;
}
void Sort(int x[], int n) //自定义排序函数
{
int i, j, t;
for(i = 0; i < n-1; i++)
{
for(j = 0; j < n-i-1; j++)
{
if(x[j] > x[j+1])
{
t = x[j];
x[j] = x[j+1];
x[j+1] = t;
}
}
}
}
温馨提示:答案为网友推荐,仅供参考