解题思路:
输出的数重置为0,遇到0则跳过
分四种情况
参考了一位大佬思路
注意事项:
参考代码:
#include<iostream>
int a[100][100]={0};
int main()
{
int r,c;
scanf("%d %d",&r,&c);
int i,j;
//输入 ,从1开始
for(i=1;i<=r;i++){
for(j=1;j<=c;j++){
scanf("%d",&a[i][j]);
}
}
//set标记四种情况,行和列
int set=1,h=1,l=1;
for(i=1;i<=r*c;i++){
//set1 左→右
if(set==1){
printf("%d\n",a[h][l]);
a[h][l]=0;
if(a[h][l+1]==0){
set=2;
h++;
continue;
}else{
l++;
set=1;
continue;
}
}
//set2 右上→右下
if(set==2){
printf("%d\n",a[h][l]);
a[h][l]=0;
if(a[h+1][l]==0){
set=3;
l--;
continue;
}else{
h++;
set=2;
continue;
}
}
//set3 右下→左下
if(set==3){
printf("%d\n",a[h][l]);
a[h][l]=0;
if(a[h][l-1]==0){
set=4;
h--;
continue;
}else{
l--;
set=3;
continue;
}
}
//set4 左下→左上
if(set==4){
printf("%d\n",a[h][l]);
a[h][l]=0;
if(a[h-1][l]==0){
set=1;
l++;
continue;
}else{
set=4;
h--;
continue;
}
}
}
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复