您的位置:首页 > 编程语言 > C语言/C++

将一个5*5 矩阵中最大的放在中间,四个角分别放最小的数据,顺序分别是左右上下,通过函数完成。

2016-10-03 18:47 459 查看
#include <stdio.h>

void init_tab(int tab[][5])
{
int i, j;
for(i = 0; i < 5; i++)
{
for(j = 0; j < 5; j++)
tab[i][j] = i * 5 + j;
}
}
int dis_tab(int tab[][5])
{
int i, j;
for(i = 0; i < 5; i++)
{
for(j = 0; j < 5; j++)
tab[i][j] = i * 5 + j;

printf("tab[%d][%d] = %d\n",i, j, tab[i][j]);
}
putchar('\n');
}

void cpy_tab(int dst[25], int src[5][5])
{
int i, j;

for(i = 0; i < 5; i++)
{
for(j = 0; j < 5; j++)
{
*dst++ = src[i][j];
}
}
}

void dos_tab(int * tmp)
{
int i;

for(i = 0; i < 25; i++)
{
printf("tmp:[%d]\n", tmp[i]);
}
}

void sort_tab(int * tmp)
{
int i, j;
int tmp1;

for(i = 0; i < 25 - 1; i++)
{
for(j = i + 1; j < 25; j++)
{
if(tmp[i] > tmp[j])
{
tmp1 = tmp[i];
tmp[i] = tmp[j];
tmp[j] = tmp1;
}
}
}
}

void swap_tab(int * a, int *b)
{
int tmp;
tmp = *a;
*a = *b;
*b = tmp;
}

void deal_tab(int tab[][5])
{
int tmp[25];
int i , j;

cpy_tab(tmp, tab);
dis_tmp(tmp);
printf("***************\n");
sort tab(tmp);
dis_tmp(tmp);
printf("******************\n");

for(i = 0; i < 5; i++)
{
for(j = 0; j < 5; j++)
{
if(tab[i][j] == tmp[24])
{
swap_tab(&tab[i][j], &tab[i][j]);
}
if(tab[i][j] == tmp[0])
{
swap_tab(&tab[i][j], &tab[0][0]);
}
if(tab[i][j] == tmp[1])
{
swap_tab(&tab[i][j],&tab[0][4]);
}
}
}
}

int main()
{
int tab[5][5];

init_tab(tab);
dis_tab(tab);
cpy_tab(tab);
swap_tab(tab);
deal_tab(tab);
sort_tab(tab);
dos_tab(tab);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言
相关文章推荐