C语言程序设计现代方法 K.N.KING 第8章第9题
2018-02-04 23:28
218 查看
前言供检索 : 编写程序,生成一种10×10字符数组(初始时全为字符'.')
希望我最后的注释大家引以为戒
希望我最后的注释大家引以为戒
#include <stdio.h> #include <stdlib.h> #include <time.h> #define N 10 int main() { int i,j; char a ; for (i=0;i<N;i++) { for(j=0;j<N;j++) {a[i][j]='.'; printf("."); } printf("\n"); //打印点阵 } printf("\n"); srand((unsigned)time(NULL)); // 生成随机数 i=0,j=0; a[i][j]=65; //////////65 is 'A' int remove; for(char k =66;k<91;k++) // 66 means B 90 is z { once: if ((a[i-1][j]!=46)&&(a[i+1][j]!=46)&&(a[i][j-1]!=46)&&(a[i][j+1]!=46)) break; // 判断是否四周都有活路 46为 . 的ASCII 码 remove = (rand()%10)%4; // 开始 随机 扔数字 0 上 1 下 2 坐 3 右 switch (remove) { case 0: if(i>0 &&a[i-1][j]==46) {a[--i][j]=k ; break; } else goto once; case 1: if(i<9 &&a[i+1][j]==46) { a[++i][j]=k ; break; } else goto once; case 2: if(j>0 &&a[i][j-1]==46) { a[i][--j]=k ; break; } else goto once; case 3: if(j<9 &&a[i][j+1]==46) { a[i][++j]=k ; break; } else goto once; } } for (i=0;i<N;i++) { for(j=0;j<N;j++) { printf("%c", a[i][j]); // 打印最后的图 } printf("\n"); } return 0; } /* 书写规范的问题 我之前每条 case 语句 是这样写的 if(i>0 &&a[i-1][j]==46) a[--i][j]=k; break; goto once; 导致我原先早就写对 但是一直跑不对 上网还另外看了两个小时左右 依旧没有发现有人给出正确代码 希望大家和我都要引以为戒 书写规范 别偷懒 */
相关文章推荐
- C语言程序设计 现代方法(第2版)pdf
- [C语言程序设计_现代方法(第2版)] 第一章 C语言概述
- C语言程序设计-现代方法----示例及练习题----第二章--C语言基本概念
- 读书笔记:C语言程序设计_现代方法
- C语言程序设计-现代方法----示例及练习题----第三章--格式化输入输出
- [C语言程序设计_现代方法(第2版)] 第二章 C语言基本概念
- 【C程序设计语言(第二版)学习】单词计数 方法
- Java语言程序设计基础篇 方法(五)
- Python语言程序设计-Week1-基本方法
- Java语言程序设计-基础篇(三)方法
- java程序设计语言采用的是按值传递的调用方法。
- 程序=算法+数据结构+程序设计方法+语言工具和环境
- 现代程序设计——C++与数据结构面向对象的方法与实现
- c语言程序设计现代算法第8章第9题
- Java语言程序设计-基础篇第五章-方法
- Python语言程序设计-学习笔记2:Python编程之基本方法
- 学习C语言与程序设计的方法
- Java语言程序设计 第8章 图形用户界面 -容器、组件
- 2017.11.2 关于C语言程序设计现代方法第8章第9题
- 程序设计语言编译方法—引言