m0_66695939 2022-10-13 20:25 采纳率: 100%
浏览 35
已结题

谁能帮帮我呀,急。?

问题描述
给定一个n*m的矩阵a,矩阵中每个元素不是0就是1,且1比0少。
矩阵中两个元素a[x1][y1]和a[x2][y2]的距离d定义为:d = ︱x1 - x2︱+︱y1 - y2︱ (||表示求绝对值,)
  对于矩阵中的每一个元素,计算与它最近的值为1的元素的距离。

输入格式
第一行包括两个整数n,m(m和n在1-100之间)用空格隔开
接下来的n行中为每行的m个元素赋值为0或1

输出格式
n行,每行有m个用空格隔开的整数。第i行,第j列的整数表示a[i][j]与离它最近的值为1的元素的距离

样例输入
3 4
0 0 0 1
0 0 1 1
0 1 1 0

样例输出
3 2 1 0
2 1 0 0
1 0 0 1

我的代码(中间那步不知怎么写):

//对于每个元素,遍历整个数组,计算与元素1所在行列号的差值的绝对值之和,求得最小值
#include<bits/stdc++.h>
using namespace std;
int a[105][105],b[105][105],c[105][105],d,d[105];
int main(){
int n,m;
scanf("%d,%d",&n,&m);
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
}
}
int q;
for(int i=1;i<=n;i++){
q=0;
for(int j=1;j<=m;j++){
if(a[i][j]==1){
q=a[i][j];
}
b[i][j]=q;
}
}
for(int i=1;i<=n;i++){
q=0;
for(int j=1;j<=m;j++){
if(a[i][j]==0){
问题
}
b[i][j]=d;
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cout<<b[i][j];
}
}
return 0;
}

  • 写回答

2条回答 默认 最新

  • SoftwareTeacher 《编程之美》作者 2022-10-13 20:45
    关注

    请你写出初始的想法

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

报告相同问题?

问题事件

  • 系统已结题 10月21日
  • 已采纳回答 10月13日
  • 创建了问题 10月13日

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测