夏秋的朝暮. 2022-11-17 08:51 采纳率: 90%
浏览 26
已结题

c语言,主函数中的变量怎么传给子函数啊……

主函数中输入的变量q好像没有传给子函数,导致可以询问无限次……
请问怎么在只改动子函数的条件下对代码进行改动啊……

#include<stdio.h>
void work(int mp[][210],int q);
int main(){
    int mp[210][210];
    int n,m,q,i,j;
    scanf("%d%d",&n,&m);
    for(i=1;i<=n;i++){
        for(j=1;j<=m;j++){
            scanf("%d",&mp[i][j]);
        }
    }
    scanf("%d",&q);
    work(mp,q);
}
void work(int mp[][210],int q)
{
    int count = 0,i,j,x,y;
    for(i = 1;i < q;i++)
    {
        count = 0;
            scanf("%d %d",&x,&y);
            if(mp[x][y] == 1)
            {
                printf("Boom!\n");
            }
            if(mp[x][y] != 1)
            {
                for(i = x - 1;i <= x + 1;i++)
                {
                    for(j = y - 1;j <= y + 1;j++)
                    {
                        if(mp[i][j] == 1)
                        count++;
                    }
                }
                printf("%d\n",count);
            }
    }
}


给出一个n∗m大小的网格,坐标从(1,1)开始,在这个网格中每个格子会有一个数字0或者1。0代表这是一个安全区域,1代表这个位置存在一个地雷,接下来我们给出q次询问,每次询问一个坐标(x,y),如果这个位置是一个地雷,那么输出Boom!,如果是一个安全区域,请你输出以他为中心的一个3*3区域内地雷的个数

下方主程序已经编写完成,请参照主函数,编写无返回值的work函数,C语言提交时仅提交work函数

#include<stdio.h>
void work(int mp[][210],int q);
int main(){
int mp[210][210];
int n,m,q,i,j;
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
scanf("%d",&mp[i][j]);
}
}
scanf("%d",&q);
work(mp,q);
}

输入格式:

第一行输出n,m(0<n,m<=200)代表网格的大小
接下来n行,每一行输入m个数字,代表这个格子内的状态
接下来输入一个q(0<q<=1000)代表q次询问

接下来q行每一行输入两个数字 x,y(0<x<=n,0<y<=m)代表查询的位置
输出格式:

对于每次询问输出Boom!或者周围地雷数量
输入样例:

3 3
1 0 1
0 1 0
1 0 1
9
1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3

输出样例:

Boom!
3
Boom!
3
Boom!
3
Boom!
3
Boom!

  • 写回答

4条回答 默认 最新

  • 浪客 2022-11-17 09:05
    关注

    for(i = x - 1;i <= x + 1;i++) 这里改变了最顶层的i。换个变量名
    3*3区域内地雷的个数,还需要判断是不是在边界

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月17日
  • 已采纳回答 11月17日
  • 创建了问题 11月17日

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。