黑马程序员技术交流社区
标题:
编写一个函数,使给定的数组排列翻转
[打印本页]
作者:
qq6937523
时间:
2016-4-5 22:37
标题:
编写一个函数,使给定的数组排列翻转
/**
* 编写一个函数,使给定的数组排列翻转
*/
#include <stdio.h>
void rebuilt(int *p);
int main()
{
//给定一个数组
int shuzu[5][5] ={
{1,2,3,4,5},
{6,7,8,9,10},
{11,12,13,14,15},
{16,17,18,19,20},
{21,22,23,24,25}
};
//展示数组初始排列
printf("初始数组是:\n");
for (int i =0; i < 5; i++)
{
for (int j = 0; j < 5; j++) {
printf("%-5d ",shuzu[i][j]);
}
printf("\n");
}
//调用重组数列的函数
//
rebuilt(*shuzu);
//展示重组后的数组排列
printf("重排列后数组是:\n");
for (int i =0; i < 5; i++)
{
for (int j = 0; j < 5; j++) {
printf("%-5d ",shuzu[i][j]);
}
printf("\n");
}
return 0;
}
void rebuilt(int *p)
{ //新建一个备份数组
int shuzuBeifen[5][5];
int k =0;
//将目标数组的值 赋值给 备份数组
for (int i =0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
shuzuBeifen[i][j] = *(p+k++);
}
}
//初始化 k的值 也可定义一个新的变量例如 int l = 0;
k = 0;
//将备份数组的列的值传递给目标数组的行
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
*(p+(k++)) = shuzuBeifen[j][i];
}
}
}
复制代码
作者:
x_starry
时间:
2016-4-6 22:55
方法不错嘛
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2