7-1精准查找
题目给出一个n*m的棋盘,在棋盘上会落入一定数量且携带有数字的棋子,(没有落子的值为一般为0)我们需要统计出棋盘上棋子的数量,并且找到它相应的位置坐标
输入格式:
输入第一行给出n,m.接着输入一个n*m的二维数组
输出格式:
在第一行输出数组大小,以空格分隔,再输出棋盘落子数量,接着输出落子对应的坐标,及棋子所携带的数字。没有棋子则输出0
输入样例:
10 10
0 3 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
1 2 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 5 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 6 0 0
输出样例:
10 10 5
0 1 3
3 0 1
3 1 2
5 6 5
9 7 6
输入样例:
10 10
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
输出样例:
10 10 0
解题代码
#include <stdio.h>
int main() {
int a[100][100] = {0};
int n = 0, m = 0;
int count = 0; // 棋盘落子数量
scanf("%d %d", &n, &m);
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
scanf("%d", &a[i][j]);
if (a[i][j] != 0)
count++;
}
}
printf("%d %d %d\n", n, m, count);
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (a[i][j] != 0)
printf("%d %d %d\n", i, j, a[i][j]);
}
}
return 0;
}
这道题注意一下换行即可