程序设计进阶 编程题#6:流感传染
2016-08-30 08:57
567 查看
描述
第一天,有些房间里的人得了流感,以后每天,得流感的人会使其邻居传染上流感,(已经得病的不变),空房间不会传染。请输出第m天得流感的人数。
输入
第一行一个数字n,n不超过100,表示有n*n的宿舍房间。
接下来的n行,每行n个字符,’.’表示第一天该房间住着健康的人,’#’表示该房间空着,’@’表示第一天该房间住着得流感的人。
接下来的一行是一个整数m,m不超过100.
输出
输出第m天,得流感的人数
样例输入
5
....#
.#.@.
.#@..
#....
.....
4
样例输出
16
代码如下:
结果如下图所示:
第一天,有些房间里的人得了流感,以后每天,得流感的人会使其邻居传染上流感,(已经得病的不变),空房间不会传染。请输出第m天得流感的人数。
输入
第一行一个数字n,n不超过100,表示有n*n的宿舍房间。
接下来的n行,每行n个字符,’.’表示第一天该房间住着健康的人,’#’表示该房间空着,’@’表示第一天该房间住着得流感的人。
接下来的一行是一个整数m,m不超过100.
输出
输出第m天,得流感的人数
样例输入
5
....#
.#.@.
.#@..
#....
.....
4
样例输出
16
代码如下:
#include<stdio.h> int f(char a[10][10],int n,int m) { int i,j,k,sum; sum=0; for(k=1;k<=m;k++) { for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(a[i][j]=='!') a[i][j]='@'; } } for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(a[i][j]=='@') { if(i-1>=0&&a[i-1][j]=='.') //上 a[i-1][j]='!'; if(i+1<n&&a[i+1][j]=='.') //下 a[i+1][j]='!'; if(j-1>=0&&a[i][j-1]=='.') //左 a[i][j-1]='!'; if(j+1<n&&a[i][j+1]=='.') //右 a[i][j+1]='!'; } } } } for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(a[i][j]=='@') sum++; } } printf("%d\n",sum); return 0; } int main() { int n,m; int i; char a[10][10]; printf("请输入n\n"); scanf("%d",&n); printf("请输入宿舍区\n"); for(i=0;i<n;i++) scanf("%s",a[i]); printf("请输入天数\n"); scanf("%d",&m); f(a,n,m); return 0; }
结果如下图所示:
相关文章推荐
- 程序设计进阶 编程题#2:四大湖
- 程序设计进阶 编程题#4:Tomrrow never knows?
- Java 进阶7 并发优化 1 并行程序的设计模式
- 程序设计进阶 编程题#1:寻找下标
- J2me手机系统参数的提取-MIDP程序设计进阶
- C++ Builder 高手进阶 (七)如何设计系统环境监控程序
- 流感传染(C程序设计进阶 第2周)
- 编程题#6:流感传染 C语言
- 流感传染(C程序设计进阶第2周)
- JAVA进阶 面向对象程序设计——第5周 设计原则(耦合和聚合,代码结构设计,程序维护拓展发展)
- Coursera pku C程序进阶 编程题#4:扩号匹配问题
- 程序设计进阶 编程题#3:发票统计
- Java程序语言进阶 ---- 第一周编程题
- Android Widget进阶——桌面便笺程序实例的实现流程与美化设计(图)
- 程序设计大赛编程题练习
- 80386ASM程序设计基础(八)
- C++Builder高手进阶 (三)用BCB设计DBTreeView组件(续一)
- Java手机程序设计入门 电子书开放下载
- 一个实用的Delphi屏幕拷贝程序的设计
- 80386ASM程序设计基础(五)