1 条题解
-
0
C :
#include<stdio.h> int down(int a[200][200], int i, int j,int m) { //方向向下判断 if (i < m - 1) { if (a[i + 1][j] == -1) //如果下一个数据已经去过 return 0; else return 1; } else if (i == m - 1) //如果到达数组边界 return 0; else return 1; } int right(int a[200][200], int i, int j, int n) { if (j == n - 1) return 0; else if (j < n) { if (a[i][j + 1] == -1) return 0; else return 1; } } int up(int a[200][200], int i, int j) { if (i == 0) return 0; else if (a[i - 1][j] == -1) return 0; else return 1; } int left(int a[200][200], int i, int j) { if (j == 0) return 0; else if (a[i][j - 1] == -1) return 0; else return 1; } int main() { int a[200][200]; int i, j; int m, n; scanf("%d%d", &m, &n); for (i = 0; i < m; i++) for (j = 0; j < n; j++) scanf("%d", &a[i][j]); i = 0; j = 0; while (m!=1 || n!=1) { for (; down(a, i, j, m); i++) { printf("%d ", a[i][j]); a[i][j] = -1;//将去过的数据设置标记即-1 } if (a[i][j + 1] == -1) break; for (; right(a, i, j, n); j++) { printf("%d ", a[i][j]); a[i][j] = -1; } if (a[i - 1][j] == -1) break; for (; up(a, i, j); i--) { printf("%d ", a[i][j]); a[i][j] = -1; } if (a[i][j - 1] == -1) break; for (; left(a, i, j); j--) { printf("%d ", a[i][j]); a[i][j] = -1; } if (a[i + 1][j] == -1) break; } printf("%d", a[i][j]); return 0; }
C++ :
#include <cstdio> #include <vector> #include <cstring> #include <iostream> using namespace std; int main() { //freopen("input2(1).txt", "r", stdin); int m, n; int i, j, num = 0; int a[205][205]; memset(a, -1, sizeof(a)); scanf("%d%d", &m, &n); for(i = 0; i < m; i++) for(j = 0; j < n; j++) scanf("%d", &a[i][j]); int tot = 0, x = -1, y = 0; while(tot < m * n) { while(x + 1 < m && a[x + 1][y] != -1) { printf("%d ", a[++x][y]); a[x][y] = -1; ++tot; } while(y + 1 < n && a[x][y + 1] != -1) { printf("%d ", a[x][++y]); a[x][y] = -1; ++tot; } while(x - 1 >= 0 && a[x - 1][y] != -1) { printf("%d ", a[--x][y]); a[x][y] = -1; ++tot; } while(y - 1 >= 0 && a[x][y - 1] != -1) { printf("%d ", a[x][--y]); a[x][y] = -1; ++tot; } } return 0; }
- 1
信息
- ID
- 1896
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者