解题思路:
输出的数重置为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分
1 人评分
C语言程序设计教程(第三版)课后习题11.8 (C语言代码)浏览:640 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:481 |
C语言训练-计算一个整数N的阶乘 (C语言代码)浏览:986 |
C语言程序设计教程(第三版)课后习题7.1 (C语言代码)浏览:1267 |
C语言训练-大、小写问题 (C语言代码)浏览:649 |
母牛的故事 (C语言代码)浏览:594 |
简单的a+b (C语言代码)浏览:529 |
矩阵乘方 (C语言代码)浏览:1079 |
1197求助浏览:667 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:465 |