【第22期】观点:IT 行业加班,到底有没有价值?

程序设计进阶 编程题#6:流感传染

原创 2016年08月30日 08:57:09

描述

第一天,有些房间里的人得了流感,以后每天,得流感的人会使其邻居传染上流感,(已经得病的不变),空房间不会传染。请输出第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;
}

结果如下图所示:


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

流感传染

 2013年北大《计算概论A》 【描述】 有一批易感人群住在网格状的宿舍区内,宿舍区为n*n的矩阵,每个格点为一个房间,房间里可能住人,也可能空着。在第一天,有些房间里的人得了流感,以后每天...

[程序猿初养成]Coursera-C程序设计进阶-第二周作业-编程题#2

编程题#2:四大湖 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 我国有4大淡水湖。 A说:洞庭湖最大,洪泽湖最小,鄱阳湖第三。 B说:洪泽湖最大...

欢迎关注CSDN程序人生公众号

关注程序员生活,汇聚开发轶事。

Spring高级程序设计 6 Spring AOP 进阶

1AOP简介 通知(Advice):通知定义了切面是什么以及何时使用。除了要描述切面要完成的工作,通知还解决了何时执行这个工作的问题。 连接点(Joinpoint):连接点是在程序执行过程中能够插入切面的一个点。这个店可以是方法被调用时、异常被抛出时、甚至字段被编辑时。切面代

[程序猿初养成]Coursera-C程序设计进阶-第二周作业-编程题#6

编程题#6:流感传染 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 有一批易感人群住在网格状的宿舍区内,宿舍区为n*n的矩阵,每个格点为一个房间,房间...

《Erlang程序设计》学习笔记-第5章 顺序型编程进阶

第5章 顺序型编程进阶 摘自:http://hi.baidu.com/zai215837829/blog/item/7520d139b98fda3996ddd871.html 1. 所有的BIF都在erlang模块中,大部分常用的BIF都已被自动导入(也就是说还有一些不常用的没有自动导入)。 2. 二进制数据相对于元组和列表,它更加节省内存,输入输出更加高效。 3. 在书写和打印时,二进制数据用一组以<>括起来的整数或字符序列的形式出现。 如:<>. <> 整数要在0-255之间,字符相当于其对应的ASCII码。
  • xgene
  • xgene
  • 2011-08-11 10:51
  • 722

[程序猿初养成]Coursera-C程序设计进阶-第二周作业-编程题#1

编程题#1:寻找下标 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 已知一个整数数组x[],其中的元素彼此都不相同。找出给定的数组中是否有一个元素满足x[i]=i的关...

Java程序设计编程题40题(二)

6、题目:一个数如果恰好等于它的因子之和,这个数就称为 "完数</

程序设计进阶 编程题#5:细菌分组实验

描述 有一种细菌分为A、B两个亚种,它们的外在特征几乎完全相同,仅仅在繁殖能力上有显著差别,A亚种繁殖能力非常强,B亚种的繁殖能力很弱。在一次为时一个 小时的细菌繁殖实验中,实验员由于疏忽把细菌...

J2me手机系统参数的提取-MIDP程序设计进阶

MIDlet在运作时,必须通过java.lang.System.getProperty()函数来取得系统属性。这些系统属性可以让MIDlet了解它们身处的环境相关信息,它们分别是: (1)microedition.profiles;取得系统所支持的所有Profile信息。 (2)microedition.configuration;取得系统所支持的Configuration信息。 (3)microedition.locale;取得系统目前所使用的地区信息。 (4)microedition.plarform;MIDlet所在平台(或机器)的名称或型号

Spring高级程序设计 4 spring 进阶(介绍了大量的Spring特性和对控制反转的补充)(笔记)

1Spring对应用程序可移植性的影响 不要凭空杜撰对可移植性的需求。在许多情况下,终端用户并不关心你的应用程序是否能在3个不同的控制反转容器上运行,而只要求他能稳定运行。2管理bean的生命周期 两个生命周期时间与be
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)