每天学习的记录;(大佬勿喷)

“水洼”问题

小明家的前面有一个坪,但是这个坪不平,下雨后,就会有“水洼”
输入:
1 1 0 0 1
1 1 0 0 1
0 0 1 1 0

1表示此处有水 0表示此处没水
一个点的说,会和周围其他点的水连成一个大水洼
最后求,水洼的数量

#include <stdio.h>
void puddle_number(int a[][5] , int n , int i , int j);
int main(int argc ,char *argv[])
{   int i,j,res=0;scanf("%d%d",&m,&n);  //m,n自定义矩阵的行数和列数int a[5][5]={{1,1,0,0,1},{1,1,0,0,1},{0,0,0,1,1},{1,1,0,0,0},{1,1,0,1,1}};     //遍历数组,如果遇到1就count++//把这个点以及它周围的点以及它周围的周围,。。。都清零for(i = 0 ; i < 5 ; i++)    //遍历整个水滴矩阵,搜索水滴处其周边水滴分布情况{for(j = 0 ; j < 5 ; j++){if(a[i][j]==1);      //寻找到水滴,水坑数加1,并递归搜索周围水滴情况{res++;//清空puddle_number(a,5,i,j);}}}printf("res=%d\n",res);
}
void puddle_number(int a[][5] , int n , int i , int j)
//递归搜索当前水滴各个方向上的水滴情况*/
{int x , y;if((i>=0&&i<=m&&j>=0&&j<=n)||a[i][j]==0) //这个是考虑i,j是否越界和该点是不是水坑,如果越界和不是水坑就直接结束{return;}a[i][j] = 0;for(x = -1;x<2;x++){for(y = -1;y<2;y++){puddle_number(a,5,i,j);}}
}

第二种写法

#include <stdio.h>
//函数声明
void clear(int b[][5],int n,int i,int j);int main(void)
{int a[5][5]={{1,1,0,0,1},{1,1,0,0,1},{0,0,0,1,1},{1,1,0,0,0},{1,1,0,1,1}};//遍历数组,如果遇到1就count++//把这个点以及它周围的点以及它周围的周围,。。。都清零int i,j;int count = 0;for(i=0;i<5;i++){for(j=0;j<5;j++){if(a[i][j]==1){count++;//清空clear(a,5,i,j);}}}printf("count = %d\n",count);
}void clear(int b[][5],int n,int i,int j)
{//假如下标不合法或者其值为0 将直接退出if(!(i>=0&&i<n&&j>=0&&j<5)||b[i][j]==0){return ;}//清零b[i][j]=0;//判断(上下左右斜)周围的是不是1#if 0int x,y;for(x = i-1;x<=i+1;x++){for(y = j-1;y<=j+1;y++){clear(b,5,x,y);}}#endif // 0clear(b,5,i-1,j);//上clear(b,5,i+1,j);//下clear(b,5,i,j-1);//左clear(b,5,i,j+1);//右
}

记录每日习题(35)相关推荐

  1. 2022年二级建造师合同价款约定与工程结算每日习题及答案

    2022年二级建造师合同价款约定与工程结算每日习题及答案,由优题宝公众号根据最新二级建造师大纲与历年真题汇总编写,包含二级建造师常考重点题型与知识点,有助于考生复习备考二级建造师,取得好成绩. 1.某 ...

  2. 【习题35】交互程序三 + 汉化版

    这个程序的核心内容就是def语句,if语句和while语句循环的重复使用. 参考: 习题-35 Q^Q 2个多月了,没想到还会回来再修改这个程序,实在是世事难料呀!  from sys import ...

  3. 笔记25 笨办法习题35分支和函数路线图

    笔记25 笨办法习题35分支和函数路线图 这似乎是前面ex31游戏的一个延续,这么长的脚本录下来了,用ps执行,很快就纠正若干字码错误,顺利执行完毕.我先试着把这个代码的思路做个整理,理解各个指令的基 ...

  4. C语言程序设计(第三版)何钦铭著 习题3-5

    C语言程序设计(第三版)何钦铭著 习题3-5 习题一览表 1. C语言程序设计(第三版)何钦铭著 习题2-1 2.C语言程序设计(第三版)何钦铭著 习题2-2 3.C语言程序设计(第三版)何钦铭著 习 ...

  5. python 笔记 分支和函数《笨办法学Python》习题35 ——1.17

    习题 35:  分支和函数 知识点总结: • 本次做的是利用循环.判定做的一个小游戏 •fromsys import exit     #向sys模块借一个exit函数用来退出程序 •exit(0), ...

  6. python计算复数的平方根将产生_Python_每日习题_0003_完全平方数

    # 题目 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? # 程序分析 因为168对于指数爆炸来说实在太小了,所以可以直接省略数学分析,用最朴素的方法来获取 ...

  7. 记录每日待办事项的APP软件

    每天总是有很多事情需要来做,如果不能借助一款好用的待办事项软件来督促自己按时完成任务的话,在繁忙的工作中很有可能会遗漏掉重要的事情,那么有哪些记录每日待办事项的APP软件比较好用呢? 如果想要记录每日 ...

  8. 习题3-1至习题3-5

    注:题目来自刘汝佳的<算法竞赛入门经典第2版>,在vjudge选择OJ平台UVA进行提交.必要的时候会写解题思路,简单的题纯粹就做个记录. 3-1 UVA1585 #include< ...

  9. windows时间同步软件_在Windows电脑桌面上记录每日工作备忘事项用哪个便签软件好?...

    电脑是很多人日常工作.生活的小帮手,使用电脑可以查询资料.数据处理.编辑文字等,为了方便办公提醒,很多人会借助电脑桌面上记录备忘事项的工具:现在电脑上可以使用的记录备忘事项的软件是比较多的,究竟哪一款 ...

  10. MySQL练习整理(每日习题)

    2022年3月26日笔记 # 1.查询员工12个月的工资总和,并起别名为ANNUAL SALARY #第一种理解方式,只计算了基本工资 SELECT employee_id,last_name,sal ...

最新文章

  1. tomcat server.xml
  2. 自动控制matlab实验,自动控制matlab实验.doc
  3. 什么是对象?——摘自《设计模式精解》(熊节 译,清华大学出版社,2004.12,P20)...
  4. java游戏暂停弹出字体_小白写了个java的小游戏 想加个暂停的功能 无从下手 求大佬们帮...
  5. linux ls for 命令嵌套
  6. html跨页面提取表单,HTML页面提取参数如何通过表单传递?
  7. IIS建立两个站点服务,只有一个公网IP
  8. [译] 人人都是设计师。我们可以的
  9. TensorFlow数据读取方式:Dataset用法
  10. viewpage2简单实现tablayout
  11. 我要偷偷的学Python,然后惊呆所有人(最后一天)
  12. CentOS:Jmeter5.2.1+Ant1.10.12+jmeter.results.shanhe.me.xsl(亲测可用)
  13. 网络安全笔记-14-网络层-路由
  14. 点餐系统mysql设计,外卖点餐系统数据库设计.doc
  15. R语言 cor与lm
  16. python 学习爬取链家武汉二手房市场成交记录
  17. IT从业者的职业规划
  18. Vue 2.爷爷点击事件触发孙子的方法
  19. 海龟python同心圆_python turtle画4个同心圆方法
  20. 生活充满欺骗,不由你不信

热门文章

  1. gavin中文是什么意思_Gavin[加文,盖温]英文名的中文翻译意思、发音、来源及流行趋势-千代英文名...
  2. 2014c语言考试题库,2014年腾讯校园招聘C语言考试真题
  3. 没有十年网龄都不知道的事儿
  4. 如何用计算机将分栏的文章合并,在Word文档中给文章段落分栏的方法
  5. 人工智能在解放客服,还是在解散客服?
  6. ai怎么做波普风圆点_如何用Ps或Ai制作出波普艺术风格的海报?
  7. Android开发虚拟机测试没问题,真机调试就出现问题,总是闪退!10秒解决!!
  8. linux 查看服务器防火墙状态,linux防火墙查看状态firewall、iptable
  9. 软件里的alpha版和beta版是什么意思?
  10. 无线局域网安全(三)————CCMP加密