问题标题: 酷町堂: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 <bits/stdc++.h>
using namespace std;
int a[101][101];
int main(){
    bool f=0;
    int n,m,k;
    cin>>n>>m>>k; 
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin>>a[i][j];
            if(a[i][j]==k&&f==0){
                a[i][j]=0;
                f=1;
            }
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cout<<a[i][j]<<" ";
        }
        cout<<endl;
    }
    return 0;
}  

 


0
已采纳
王子逸
王子逸
新手天翼
新手天翼
for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            输入>>a[i][j];
			if(a[i][j]==k)
			{
			f++;	
			}
            if(f>1&&a[i][j]==k){
                a[i][j]=0;
                
            }
        }
    }

 

王子逸在2020-04-30 13:10:59追加了内容

这是核心代码100分

王子逸在2020-04-30 13:11:41追加了内容

#include <bits/stdc++.h>
using namespace std;
int a[101][101];
int main(){
    int f=0;
    int n,m,k;
    输入>>n>>m>>k; 
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            输入>>a[i][j];
            if(a[i][j]==k)
            {
            f++;    
            }
            if(f>1&&a[i][j]==k){
                a[i][j]=0;
                
            }
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            输出<<a[i][j]<<" ";
        }
        输出<<endl;
    }
    return 0;
}  

王子逸在2020-04-30 13:12:07追加了内容

这是所有代码

0
董宇昊
董宇昊
初级启示者
初级启示者

你学到二维数组元素引用了?

我要回答