一c语言的32个关键字
char double enum float int long short signed struct union usigned void for do while break continue if else goto swich case defalut return auto extern register static const sizeof typedef volatile
二typedef的用途
定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:
char* pa, pb; //它只声明了一个指向字符变量的指针,
// 和一个字符变量;
以下则可行:
typedef char* PCHAR; // 一般用大写
PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针
三扫雷代码
#include<stdio.h>#include<stdlib.h> // rand#define INITSHOW 0x80 // 1000 0000 // @#define MAKEMINE 0x40 // 0100 0000 //##define MINESHOW 0x20 // 0010 0000 //#define MAKESUM 0x10 // 0001 0000 雷的个数#define PRINTSUM 0x0F // 0000 1111#define CLSINIT 0x7f // 0111 1111#define MINENUM 25 //雷的个数#define ROWSIZE 10 //行数#define COLSIZE 10 //列数typedef unsigned char Grid[ROWSIZE + 2][COLSIZE + 2];void Init_Ar(Grid ar, int row, int col){ // for (int i = 1; i <= row; ++i) { for (int j = 1; j <= col; ++j) { ar[i][j] = INITSHOW; } } // int i = 0; while (i < MINENUM) { int r = rand() % ROWSIZE + 1; int c = rand() % COLSIZE + 1; if (!(ar[r][c] & MAKEMINE)) { ar[r][c] = (ar[r][c] | MAKEMINE); ++i; } } // for (int r = 1; r <= row; ++r) { for (int c = 1; c <= col; ++c) { if (!(ar[r][c] & MAKEMINE)) { int num = 0; for (int i = r - 1; i <= r + 1; ++i) { for (int j = c - 1; j <= c + 1; ++j) { if (ar[i][j] & MAKEMINE) { num += 1; } } } ar[r][c] = (ar[r][c] | MAKESUM); ar[r][c] = ar[r][c] | (num & PRINTSUM); } } }}void Print_Ar(Grid ar, int row, int col){ printf(" “); for (int i = 1; i <= col; ++i) { printf(”%2d", i); } printf("\n"); for (int i = 1; i <= row; ++i) { printf("%2d", i); for (int j = 1; j <= col; ++j) { if (ar[i][j] & MINESHOW) { printf("%2c", ‘#’); } else if (ar[i][j] & INITSHOW) { printf("%2c", ‘@’); } else { printf("%2d", ar[i][j] & PRINTSUM); // 0x0F } } printf("\n"); } printf("\n");}int main(){ Grid ar = {}; Init_Ar(ar, ROWSIZE, COLSIZE); int num = 0; int r, c; char ch; while (num < MINENUM) { system(“cls”); Print_Ar(ar, ROWSIZE, COLSIZE); printf(“input row col select(#,0,@) \n”); scanf_s("%d %d %c", &r, &c, &ch); if (r >= 1 && r <= ROWSIZE && c >= 1 && COLSIZE) { if (ch == ‘0’) { if (ar[r][c] & MAKEMINE) { printf(“炸死了”); getchar(); break; } ar[r][c] = (ar[r][c] & CLSINIT); } else if (ch == ‘#’) { if (ar[r][c] & MAKEMINE) { num += 1; ar[r][c] = (ar[r][c] & CLSINIT); ar[r][c] = (ar[r][c] | MINESHOW); } } else if (ch == ‘@’) { } else { printf(“select error \n”); } } else { printf(“row col error \n”); } } return 0;}
2021-07-08
最新推荐文章于 2021-11-10 17:26:45 发布