插入排序:向有序的区域中插入一个新元素仍保持有序 二维数组也称为矩阵
#include <stdio.h>
int main()
{
int arr[5] = {5, 4, 1, 2, 3};
for (int i = 1; i < 5; i++)
{
int j = i;
int key = arr[j];
while (j > 0 && arr[j - 1] > key)
{
arr[j] = arr[j - 1];
j--;
}
arr[j] = key;
}
for (int i = 0; i < 5; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
#include <stdio.h>
int main()
{
int arr[2][3] = {{14, 24, 32}, {47, 521, 6}};
for (int i = 0; i < 2; i++)//行
{
for (int j = 0; j < 3; j++)
{
printf("%3d ", arr[i][j]);//列
}
printf("\n");
}
return 0;
}
#include <stdio.h>
int main()
{
int arr[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int i, j;
for (i = 0; i < 3; i++)
{
for (j = 0; j < i; j++)
{
int temp = arr[i][j];
arr[i][j] = arr[j][i];
arr[j][i] = temp;
}
}
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
#include <stdio.h>
int main()
{
int arr[3][2] = {{1, 2}, {3,4}, {5,6}};
int arr1[2][3];
int i, j;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 2; j++)
{
arr1[j][i] = arr[i][j];
}
}
for (i = 0; i < 2; i++)
{
for (j = 0; j < 3; j++)
{
printf("%d ", arr1[i][j]);
}
printf("\n");
}
return 0;
}
#include <stdio.h>
int main()
{ //*:雷,.:空地
char arr[4][4] = {
{'.', '.', '*', '.'},
{'.', '*', '.', '.'},
{'.', '.', '.', '*'},
{'.', '.', '*', '.'}};
char arr1[4][4];
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
if (arr[i][j] == '*')
{
arr1[i][j] = '*';
}
else
{
int a = '0';
for(int k = i-1;k<=i+1;k++)
{
for(int l = j-1;l<=j+1;l++)
{
if(k>=0&&k<4&&l>=0&&l<4)
{
if(arr[k][l]=='*')
{
a++;
}
}
}
}
arr1[i][j] = a;
}
}
}
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
printf("%c ", arr1[i][j]);
}
printf("\n");
}
return 0;
}