思路及代码
#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()
菜菜,不是教程,做题和学习记录