收藏 分销(赏)

C语言练习-生命细胞.doc

上传人:pc****0 文档编号:7173067 上传时间:2024-12-27 格式:DOC 页数:4 大小:89.83KB
下载 相关 举报
C语言练习-生命细胞.doc_第1页
第1页 / 共4页
C语言练习-生命细胞.doc_第2页
第2页 / 共4页
点击查看更多>>
资源描述
2.7.1.2 练习 2:生命细胞 ***** ** * ** * * ** * * ** ** **** 若一个细胞周围有3个活细胞,当前细胞就活 若一个细胞周围有2个活细胞,当前细胞的生命状态不变 若一个细胞周围有<2或>3,当前细胞就死亡 随机生成10*10的细胞群营,研究历经多少代,群落进入稳定状态。 程序雏形: char c[10][10];//用于存储细胞阵列 void init(char c[][10]);//用于初始化细胞阵列 void show(char c[][10],int g);//用于显示细胞阵列 int quit(void);//用于接受用户的指令,退出程序 void breed(char c[][10]);//繁殖 srand(time(NULL)); rand();//随机函数 //life.c #include<stdio.h> #include<time.h> #include<stdlib.h> #define H 10//宏定义行列便于更改 #define W 10 #define NULL 0 void init(char c[H][W]) { srand(time(NULL)); int i,j; for(i=0;i<H;i++) for(j=0;j<W;j++) c[i][j]=rand()%2?'*':' '; } void show(char c[H][W],int g) { int i,j,k=0;//当k在下面进行自增自减的时候,必须进行初始化令k值为0 for(int i=0;i<H;i++) { for(int j=0;j<W;j++) { printf("%c",c[i][j]); if(c[i][j]=='*') k++; } printf("\n"); } printf("[%d] %d \n",g,k); } void quit(void) { printf("Press <Q> to quit,press other key to continue..."); char ch; scanf("%c",&ch); if(ch=='Q'||ch=='q') exit(0); } void breed(char c[H][W]) { int i,j; for(i=0;i<H;i++) for(j=0;j<W;j++) { int u=i-1,d=i+1,l=j-1,r=j+1,k=0; if(u>=0&&c[u][j]=='*') k++; if(d<H&&c[d][j]=='*') k++; if(l>=0&&c[i][l]=='*') k++; if(r<W&&c[i][r]=='*') k++; if(u>=0&&l>=0&&c[u][l]=='*') k++; if(u>=0&&r<W&&c[u][r]=='*') k++; if(d<H&&l>=0&&c[d][l]=='*') k++; if(d<H&&r<W&&c[d][r]=='*') k++; if(k==3) c[i][j]='*'; else if(k!=2) c[i][j]=' '; } } int main() { char c[H][W]; init(c); int g; for(g=1;;g++) { show(c,g); quit(); breed(c); } return 0; } 错误分析: 1)当k需要进行自增自减时候,在声明k的时候,一定要让k值初始化 详解: 1) breed函数 (u,l) (u,j) (u,r) (i,l) (i,j) (i,r) (d,l) (d,j) (d,r) 一个点四周共有八个点,这八个点影响它的生命状态,从c[0][0]到c[9][9]这样的顺序一一判断。 2)随机函数:srand(time(NULL)); rand(); 这是一个伪随机数,由srand()函数接受一个种子,这个种子是在头文件time.h里面的,接收当前系统时间作为一个种子,种子不同,rand()函数产生的随机数列也会不同,相当于一个种子产生一个随机数列,这个数列无穷大,相同的种子产生的相同的随机数列。 3)rand()%2; %取余,如:a%b;其中a和b均必须为int类型 a除以b取余数,若a>b,那么余数不会大于b,10%3=1,商为3 若a<b,那么,余数为a,3%10=3,商为0 4)帮助文档,查看系统函数exit(); man exit –S3 在gcc 编译器中,帮助文档的第3章有关于exit函数的详细介绍
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服