程序设计进阶 编程题#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;
}

结果如下图所示:


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

相关文章推荐

流感传染(C++实现)

描述 有一批易感人群住在网格状的宿舍区内,宿舍区为n*n的矩阵,每个格点为一个房间,房间里可能住人,也可能空着。在第一天,有些房间里的人得了流感,以后每天,得流感的人会使其邻居传染上流感,(已经得...

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

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

流感传染(C程序设计进阶第2周)

问题描述 有一批易感人群住在网格状的宿舍区内,宿舍区为n*n的矩阵,每个格点为一个房间,房间里可能住人,也可能空着。在第一天,有些房间里的人得了流感,以后每天,得流感的人会使其邻居传染上流感,(已经...

流感传染(C程序设计进阶 第2周)

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

程序设计进阶 编程题#4:Tomrrow never knows?

描述 甲壳虫的《A day in the life》和《Tomorrow never knows》脍炙人口,如果告诉你a day in the life,真的会是tomorrow never k...

程序设计进阶 编程题#1:寻找下标

描述 已知一个整数数组x[],其中的元素彼此都不相同。找出给定的数组中是否有一个元素满足x[i]=i的关系,数组下标从0开始。 举例而言,如果x[]={-2,-1,7,3,0,8},则x[...

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

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

编程题#6:MyString(C++程序设计第10周)

描述请写出 MyString类,使得下面程序的输出结果符合下面的要求。#include #include #include #include using namespace std; // 在...

编程题#9:人群的排序和分类(C++程序设计第10周)

描述对人群按照输入的信息进行排序和分类。#include #include #include #include using namespace std; // 在此处补充你的代码 int ma...

编程题#7:字符串排序(C++程序设计第10周)

描述请按照要求对输入的字符串进行排序。#include #include #include using namespace std;class A{ private: strin...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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