7.29 学习笔记

35 阅读1分钟

插入排序:向有序的区域中插入一个新元素仍保持有序 二维数组也称为矩阵

#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;
}