DHU OJ 二维数组 二维数组右上左下遍历

思路及代码


#include<iostream>
using namespace std;
//找一个值赋给导入 list 后还没赋值的元素,判断 list[i][j]是否与之重复;
bool ran_equal_ele(int ele,int r){
    return ele == r ? 1: 0;
}
//input row, col int  0< <100
//input row 组行,每行有 col 个元素
int main(){
    int row, col;
    cin >> row >> col;
    
//solution
//创建一张便于输出的表 step1
    int list[row][row+col-1];
    int r = rand();
    for (int i = 0; i <= row-1; i++){
        for (int j = i; j <= col+i-1; j++){
            cin >> list[i][j];
            while ( ran_equal_ele(list[i][j],r) ){
                r = rand();
            }
            
        }
    }
//step2
    int list2[row][row+col-1];
    for (int i = 0; i <= row-1; i++){
        for (int j = 0; j <= row+col-2; j++){
            list2[i][j] = r;
        }
    }
    for (int i = 0; i <= row-1; i++){
        for (int j = i; j <= col+i-1; j++){
            list2[i][j] = list[i][j];
        }
    }
//output 等于 r 的元素不输出
    for (int j = 0; j <= row+col-2; j++){
        for (int i = 0; i <= row-1; i++){
            if (list2[i][j] != r){
                cout << list2[i][j] << ' ';
            }
        }
    }
    return 0;
}


感觉平移的想法挺好的,但具体实现写的可能有点愚蠢?以后再回来看看。

参考:1️⃣C++中rand()函数的用法_c++随机函数rand使用方法-CSDN博客

收获:1️⃣复习随机生成一个正整数rand() 

菜菜,不是教程,做题和学习记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值