【C语言篇】☞ 9. char类型、案例 char类型 编码方案 特殊字符 案例

【C语言篇】☞ 9. char类型、案例
char类型
编码方案
特殊字符
案例

编码方案

  ASCII:  'A'== 65     'a' == 97    '0' == 48

  GB2312:  2Bytes对应一个汉字

    陶喆   * (这种编码没有“喆”和“镕”字)

  GBK: 2Bytes对应一个汉字

  GB18030:UTF-8: 可变长, 1Bytes, 2Bytes,3Bytes,4Bytes

特殊字符

     换行    退格 ←     回车     转义符     制表符

案例

  【C语言篇】☞ 9. char类型、案例
char类型
编码方案
特殊字符
案例

  【C语言篇】☞ 9. char类型、案例
char类型
编码方案
特殊字符
案例

  【C语言篇】☞ 9. char类型、案例
char类型
编码方案
特殊字符
案例

  【C语言篇】☞ 9. char类型、案例
char类型
编码方案
特殊字符
案例

  【C语言篇】☞ 9. char类型、案例
char类型
编码方案
特殊字符
案例

  【C语言篇】☞ 9. char类型、案例
char类型
编码方案
特殊字符
案例

  【C语言篇】☞ 9. char类型、案例
char类型
编码方案
特殊字符
案例

  【C语言篇】☞ 9. char类型、案例
char类型
编码方案
特殊字符
案例

  【C语言篇】☞ 9. char类型、案例
char类型
编码方案
特殊字符
案例

  【C语言篇】☞ 9. char类型、案例
char类型
编码方案
特殊字符
案例

  【C语言篇】☞ 9. char类型、案例
char类型
编码方案
特殊字符
案例

  【C语言篇】☞ 9. char类型、案例
char类型
编码方案
特殊字符
案例

 

/** 打印九宫格 */

 

#include <stdio.h>

#include <assert.h>

int main() {

    printf("请输入一个奇数:");

    int n;

    scanf("%d", &n);

    //断言,判断一个条件是否成立,如果不成立,程序退出

    assert(n%2 != 0);

    int nine[n][n];//保存九宫格的数组

    for(int i=0; i<n; i++){

        for(int j=0; j<n; j++){

            nine[i][j] = 0;

        }

    }

    //每次循环,将i放到该放的位置

    int row = 0;//行,初始为最上面一行

    int col = n/2; //列,初始为最中间一列

    for(int i=1; i<=n*n; i++){

        nine[row][col] = i;

        //计算下一个数要放的行和列

        //45度向上走

        row--;

        col++;

        //如果都越界,放原先的下面

        if(row<0 && col == n){

            row += 2;

            col--;

        }

        //如果行越界,放最下面

        else if(row<0){

            row = n-1;

        }

        //如果列越界,放最左面

        else if(col == n){

            col = 0;

        }

        //如果冲突,放原先的下面

        else if(nine[row][col] != 0){

            row += 2;

            col--;

        }

    }

    //打印

    for(int i=0; i<n; i++){

        for(int j=0; j<n; j++){

            printf("%d ", nine[i][j]);

        }

        printf(" ");

    }

    return 0;

}