目录
一【题目描述】
二【题目样例】
三【解题思路】
不会数组右移,不会找奇数行,题没读懂是分别右移1到k
四【代码实现】
#include<iostream>
#include<cstdio>
using namespace std;
int a[201][101]={0};
int main(){
//1.输入到二维数组之中
int n,k,x;
scanf("%d%d%d",&n,&k,&x);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
int b;
scanf("%d",&a[i][j]);
}
}
//2.扫描奇数行进行平移,利用i+2找奇数行每行从后往前遍历,前面移动到后面,进行覆盖
int temp;
int step=1;
for(int i=1;i<=n;i+=2){
temp=step++;
if(step>k) step=1;
for(int j=n;j>=1;j--){
a[i][j]=a[i][j-temp];
if(j<=temp)a[i][j]=x;
}
}
//3.求每列的和
for(int j=1;j<=n;j++){
int sum=0;
for(int i=1;i<=n;i++){
sum+=a[i][j];
}
if(j!=n) printf("%d ",sum);
else printf("%d",sum);
}
}