问题标题: 酷町堂:4895

0
0
已解决
吕梓瑜
吕梓瑜
初级天翼
初级天翼

4895   数值置换器

题目描述 Description

在计算机的硬件操作中,有很多地方都会用到数值置换器,具体规则如下:
给定一个M行N列二维数组以及一个参考数值a,将二维数组中所有第一次以后出现的a清0,请输出经过数值置换器之后的新数组。

输入描述 Input Description

输入为M+1行:
第一行为二维数组的行数M与列数N,以及参考值a,且M与N不超过50;
余下的M行为M行N列的二维数组,每一行之间的元素用单个空格隔开。

输出描述 Output Description

输出为M行N列的二维数组,表示的是经过数值置换器之后的新数组,没一行之间的元素用单个空格隔开。

样例输入 Sample Input

3 3 3 1 2 3 4 1 2 5 3 1

样例输出 Sample Output

1 2 3 4 1 2 5 0 1

数据范围及提示 Data Size & Hint

n,m<=50

 

 

这个哪里错了?

#include<iostream>

#include<cstdio>

#include<cmath>

using namespace std;

int main()

{

int c[105][105];

    int m,n,a;

bool flag=-1;

    cin>>m>>n>>a;

    for(int i=1;i<=m;i++){

        for(int j=1;j<=n;j++){

            cin>>c[i][j];

if(c[i][j]==a){

c[i][j]=0;

flag=i;

}

if(flag=1){

c[i][j]=c[i][j];

}

        }

    }

for(int i=1;i<=m;i++){

        for(int j=1;j<=n;j++){

            cout<<c[i][j]<<" ";

        }

cout<<"\n";

    }

return 0;

}


0
已采纳
汪恺恒
汪恺恒
中级启示者
中级启示者

我的核心

bool f=0;
for(int i=1;i<=m;i++){
        for(int j=1;j<=n;j++){
            if(a[i][j]==x){
                if(!f) f=1;
                else a[i][j]=0;
            }
        }
    }

 

我要回答