#include<bits/stdc++.h> using namespace std; int main() { char a[1000][1000]; char b[8][8] = { {'1','1','1','1','1','1','1','1'}, {'1','0','0','0','0','0','0','1'}, {'1','0','1','1','1','1','0','1'}, {'1','0','1','1','1','1','0','1'}, {'1','0','1','1','1','1','0','1'}, {'1','0','1','1','1','1','0','1'}, {'1','0','0','0','0','0','0','1'}, {'1','1','1','1','1','1','1','1'} }; int n, m; cin >> n >> m; int flag = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { cin >> a[i][j]; } } for (int i = 0; i < n - 7; i++) { for (int j = 0; j < m - 7; j++) { for (int r = i; r < i + 8; r++) { for (int t = j; t < j + 8; t++) { if (a[r][t] != b[r - i][t - j]) { flag = 1; break; } } if (flag==1)break; } if (flag == 0) { cout << i << " " << j << endl; } flag = 0; } } return 0; }转为C语言
时间: 2023-09-11 18:12:19 浏览: 131
万能头文件#include&amp;lt;bits/stdc++.h&amp;gt; using namespace std;
以下是将该段C++代码转换为C语言代码的一种可能实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char a[1000][1000];
char b[8][8] = {
{'1','1','1','1','1','1','1','1'},
{'1','0','0','0','0','0','0','1'},
{'1','0','1','1','1','1','0','1'},
{'1','0','1','1','1','1','0','1'},
{'1','0','1','1','1','1','0','1'},
{'1','0','1','1','1','1','0','1'},
{'1','0','0','0','0','0','0','1'},
{'1','1','1','1','1','1','1','1'}
};
int n, m;
scanf("%d%d", &n, &m);
int flag = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
scanf("%c", &a[i][j]);
}
getchar(); // 处理输入缓冲区中的换行符
}
for (int i = 0; i < n - 7; i++) {
for (int j = 0; j < m - 7; j++) {
for (int r = i; r < i + 8; r++) {
for (int t = j; t < j + 8; t++) {
if (a[r][t] != b[r - i][t - j]) {
flag = 1;
break;
}
}
if (flag == 1) break;
}
if (flag == 0) {
printf("%d %d\n", i, j);
}
flag = 0;
}
}
return 0;
}
```
需要注意的是,C语言和C++有许多不同之处,需要注意语法和库函数的使用。例如,C语言中没有`iostream`库,需要用`stdio.h`和`stdlib.h`等库代替;C语言中的输入输出函数和格式化字符串与C++略有不同,需要注意。
阅读全文