当前位置: 首页 > news >正文

网站开发图标下载怎样在微信公众号里做微网站

网站开发图标下载,怎样在微信公众号里做微网站,花桥网站建设,邵阳建设网站公司目录 1. 一维数组的创建和初始化。 1.1 数组的创建 1.2 数组的初始化 1.3 一维数组的使用 1.4 一维数组在内存中的存储 2. 二维数组的创建和初始化 2.1 二维数组的创建 2.2 二维数组的初始化 2.3 二维数组的使用 2.4 二维数组在内存中的存储 3. 数组越界 4. 冒泡…目录 1. 一维数组的创建和初始化。 1.1 数组的创建 1.2 数组的初始化 1.3 一维数组的使用 1.4 一维数组在内存中的存储 2. 二维数组的创建和初始化 2.1 二维数组的创建  2.2 二维数组的初始化  2.3 二维数组的使用 2.4 二维数组在内存中的存储 3. 数组越界  4. 冒泡函数的设计 5.三子棋 6.带标记和BFS的扫雷游戏 1. 一维数组的创建和初始化。 1.1 数组的创建 数组是一组相同类型元素的集合。 数组的创建方式 type_t  arr_name  [const_n]; //type_t 是指数组的元素类型 //const_n 是一个常量表达式用来指定数组的大小 数组创建的实例 //代码1 int arr1[10]; //代码2 int count 10; int arr2[count];//数组时候可以正常创建 //代码3 char arr3[10]; float arr4[1]; double arr5[20];  注数组创建在C99标准之前 [] 中要给一个常量才可以不能使用变量。在C99标准支持了变长数组的概念。  1.2 数组的初始化 数组的初始化是指在创建数组的同时给数组的内容一些合理初始值初始化。 看代码 int arr1[10] {1,2,3}; int arr2[] {1,2,3,4}; int arr3[5] {12345} char arr4[3] {a,98, c}; char arr5[] {a,b,c}; char arr6[] abcdef; 数组在创建的时候如果想不指定数组的确定的大小就得初始化。数组的元素个数根据初始化的内容来确定。 但是对于下面的代码要区分内存中如何分配。 char arr1[] abc;   (自带‘\0’) char arr2[3] {a,b,c}; 1.3 一维数组的使用 对于数组的使用我们之前介绍了一个操作符 [] 下标引用操作符。它其实就数组访问的操作符。 我们来看代码 #include stdio.h int main() { int arr[10] {0};//数组的不完全初始化//计算数组的元素个数int sz sizeof(arr)/sizeof(arr[0]); //对数组内容赋值,数组是使用下标来访问的下标从0开始。所以 int i 0;//做下标 for(i0; i10; i)// { arr[i] i; } //输出数组的内容 for(i0; i10; i) { printf(%d , arr[i]); } return 0; } 总结: 1. 数组是使用下标来访问的下标是从0开始。 2. 数组的大小可以通过计算得到。 int arr[10]; int sz sizeof(arr)/sizeof(arr[0]); 1.4 一维数组在内存中的存储 接下来我们探讨数组在内存中的存储。  include stdio.h int main() { int arr[10] {0}; int i 0;int sz sizeof(arr)/sizeof(arr[0]);for(i0; isz; i) { printf(arr[%d] %p\n, i, arr[i]); } return 0; } 仔细观察输出的结果我们知道随着数组下标的增长元素的地址也在有规律的递增。 由此可以得出结论数组在内存中是连续存放的。 2. 二维数组的创建和初始化 2.1 二维数组的创建  //数组创建 int arr[3][4]; char arr[3][5]; double arr[2][4]; 2.2 二维数组的初始化  //数组初始化 int arr[3][4] {1,2,3,4}; int arr[3][4] {{1,2},{4,5}}; int arr[][4] {{2,3},{4,5}};//二维数组如果有初始化行可以省略列不能省略 2.3 二维数组的使用 二维数组的使用也是通过下标的方式。 看代码  #include stdio.h int main() { int arr[3][4] {0}; int i 0; for(i0; i3; i) { int j 0; for(j0; j4; j) { arr[i][j] i*4j; } } for(i0; i3; i) { int j 0; for(j0; j4; j) { printf(%d , arr[i][j]); } } return 0; } 2.4 二维数组在内存中的存储 像一维数组一样这里我们尝试打印二维数组的每个元素。  #include stdio.h int main() { int arr[3][4]; int i 0; for(i0; i3; i) { int j 0; for(j0; j4; j) { printf(arr[%d][%d] %p\n, i, j,arr[i][j]); } } return 0; } 通过结果我们可以分析到其实二维数组在内存中也是连续存储的。  3. 数组越界  数组的下标是有范围限制的。 数组的下规定是从0开始的如果数组有n个元素最后一个元素的下标就是n-1。 所以数组的下标如果小于0或者大于n-1就是数组越界访问了超出了数组合法空间的访问。 C语言本身是不做数组下标的越界检查编译器也不一定报错但是编译器不报错并不意味着程序就是正确的 所以我们平时要经常做越界的检查。  #include stdio.h int main() { int arr[10] {1,2,3,4,5,6,7,8,9,10};int i 0;for(i0; i10; i){printf(%d\n, arr[i]);//当i等于10的时候越界访问了} return 0; } 二维数组的行和列也可能存在越界 4. 冒泡函数的设计 实现一个冒泡排序函数将一个整形数组排序。 补充 1. sizeof(数组名)计算整个数组的大小sizeof内部单独放一个数组名数组名表示整个数 组。 2. 数组名取出的是数组的地址。数组名数组名表示整个数组。 除此1,2两种情况之外所有的数组名都表示数组首元素的地址。 #include stdio.h void bubble_sort(int arr[], int sz)//参数接收数组元素个数 {int sz sizeof(arr)/sizeof(arr[0]);//这样对吗int i 0; for(i0; isz-1; i){int j 0;for(j0; jsz-i-1; j){if(arr[j] arr[j1]){int tmp arr[j];arr[j] arr[j1];arr[j1] tmp;}}} } int main() {int arr[] {3,1,7,5,8,9,0,2,4,6};int sz sizeof(arr)/sizeof(arr[0]);bubble_sort(arr, sz);for(i0; isz; i){printf(%d , arr[i]);}return 0; } 5.三子棋 有我很早之前一篇博客 6.带标记和BFS的扫雷游戏 game.c #define _CRT_SECURE_NO_WARNINGS 1 #includegame.h//初始化数组 void InitBoard(char board[ROWS][COLS], int rows, int cols, char set) {int i 0;for (i 0; i rows; i){int j 0;for (j 0; j cols; j){board[i][j] set;}} }//打印棋盘 void DisplayBoard(char board[ROWS][COLS], int row, int col) {int i 0;printf(----------------扫雷游戏----------------\n);for (i 0; i col; i){printf(%d , i);}printf(\n);for (i 1; i 9; i){printf(%d , i);int j 0;for (j 1; j 9; j){printf(%c , board[i][j]);}printf(\n);} }//布置雷 void SetMine(char board[ROWS][COLS], int row, int col) {//布置10个雷//随机生成十个随机坐标布置雷int count COUNT;while (count){int x rand()%row1;int y rand()%col1;if (board[x][y] 0){board[x][y] 1;count--;}} }//统计周围雷的个数 int GetMineCount(char mine[ROWS][COLS], int x, int y) {return (mine[x - 1][y] mine[x - 1][y - 1] mine[x][y - 1] mine[x 1][y - 1] mine[x 1][y] mine[x 1][y 1] mine[x][y 1] mine[x - 1][y 1] - 8 * 0); }//爆炸展开 void ExplodeBoard(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col, int x, int y,int* p) {int temp *p;temp;//限制条件if (x 1 x row y 1 y col){//计算该位置周围雷的个数int count GetMineCount(mine, x, y);if (count 0){//把该位置变成空格show[x][y] ;int i 0;//向周围进行递归遍历for (i x - 1; i x 1; i){int j 0;for (j y - 1; j y 1; j){//限制对重复递归调用的条件避免死递归if (show[i][j] *){temp;ExplodeBoard(mine, show, row, col, i, j,temp);}}}}else{show[x][y] count 0;}} }//标记雷的函数 void Signmine(char board[ROWS][COLS], int row, int col) {int x 0;int y 0;while (1){printf(请输入要标记的坐标);scanf(%d %d, x, y);if (x 1 x row y 1 y col){if (board[x][y] *){board[x][y] !;break;}else{printf(该位置不能被标记请重新输入\n);}}else{printf(坐标非法请重新输入\n);}} } //排查雷的函数 void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col) {int x 0;int y 0;int win 0;char ch 0;while (win ROW*COL-COUNT){printf(输入所要排查的目标\n);scanf(%d %d, x, y);if (x 1 x row y 1 y col)//检查坐标是否合法{if (mine[x][y] 1){printf(很遗憾你被炸死了。\n);DisplayBoard(mine,ROW,COL);break;}else{//爆炸展开ExplodeBoard(mine, show, row, col,x,y,win);//打印棋盘DisplayBoard(show, ROW, COL);printf(需要标注地雷输入Y,不需要则输入N\n);//清空缓冲区while ((ch getchar()) ! \n);scanf(%c, ch);if (ch Y){//标记雷的位置Signmine(show, ROW, COL);}}}else{printf(坐标非法重新输入\n);}//打印棋盘DisplayBoard(show, ROW, COL);}if (win ROW * COL - COUNT){printf(恭喜你排雷成功\n);DisplayBoard(mine, ROW, COL);} } game.h #pragma once #includestdio.h #includetime.h #includestdlib.h#define ROW 9 #define COL 9#define ROWS ROW2 #define COLS COL2//雷的个数 #define COUNT 10//初始化数组函数的声明 void InitBoard(char board[ROWS][COLS], int rows, int cols, char set);//打印棋盘数组的函数声明 void DisplayBoard(char board[ROWS][COLS], int row, int col);//布置雷的函数声明 void SetMine(char board[ROWS][COLS], int row, int col);//排查雷的函数声明 void FindMine(char mine[ROWS][COLS], char show[ROWS test.c #define _CRT_SECURE_NO_WARNINGS 1 #includegame.hvoid menu() {printf(*****************************\n);printf(*********1.play**************\n);printf(*********0.exit**************\n);printf(*****************************\n); } void game() {char mine[ROWS][COLS];//存放布置雷的信息char show[ROWS][COLS];//存放排查雷的信息//初始化棋盘//1mine数组最开始全是‘0’//2show数组最开始全是‘*’InitBoard(mine, ROWS, COLS, 0);InitBoard(show, ROWS, COLS, *);//打印棋盘//DisplayBoard(mine, ROW, COL);DisplayBoard(show, ROW, COL);//布置雷SetMine(mine, ROW, COL);//DisplayBoard(mine, ROW, COL);//排查雷FindMine(mine, show, ROW, COL);} int main() {int input 0;srand((unsigned int)time(NULL));do{menu();printf(请选择);scanf(%d, input);switch (input){case 1:game();break;case 0:printf(退出游戏\n);default:printf(选择错误请重新选择\n);break;}} while (input);return 0; }
http://www.dnsts.com.cn/news/169799.html

相关文章:

  • 济南网站建设免费个人简介ppt模板
  • 网站怎么显示被k住宅与建设部网站
  • 淘客网站做的好的百度搜索关键词技巧
  • 佛山大良网站建设怎么优化标题和关键词排名
  • 浙江网站建设制作酒店和网站对接如何做
  • 网站备案幕布psd可以做超大海报的网站
  • 整站排名服务wordpress优质插件
  • 江门企业模板建站十堰建设网站首页
  • 弄一个网站多少钱莱芜金点子信息港厂房出租
  • 怎么自助建站淘宝联盟做的好的网站
  • 保定网站建设制作服务广告公司网站官网
  • 高职考技能考网站建设试题摄影网站网络促销方式
  • 网站域名注册查询seo最新优化技术
  • 鲜花网站建设解决方案WordPress网站htm地图
  • seo按照搜索引擎的什么对网站龙岗坑梓网站建设
  • 东莞网站开发哪家好wordpress主题知更鸟设置
  • 网站建设php实验报告网站开发团队构成
  • 南京百度seo排名网站seo关键词
  • 做商城网站需要备案吗php网站后台密码忘记了怎么办
  • 哪家网站建设好广告网站
  • 企业网站建设用什么网站备案时长
  • 天津做网站的哪家好saas系统
  • 长沙网站优化方案抖音特效开放平台官网
  • 做网站的赢利点dedecms网站后台
  • 音乐类网站模板企业网站设计注意事项
  • 便宜做网站怎么样滁州网站建设
  • 图库网站源码典型的网络营销案例
  • 网站百度建设yfcms企业网站建设
  • 一站式网络营销网站开发前的准备工作
  • 甘肃张掖网站建设wordpress 好用的编辑器