将下列代码转换成c语言代码:#include <iostream> #include <vector>//动态数组存储解 #include <algorithm>//调用sort函数用于动态结构体数组排序 using namespace std; struct idx//结构体存储解的坐标 { int x,y; }; vector<idx> A;//开辟动态数组 const int N = 1000+10; char g[N][N];//创建二维字符用于储存 int cmp(struct idx &A,struct idx &B)//自定义cmp函数来对于sort排序依据重定义 { if(A.x!=B.x)return A.x<B.x;//首先按照行升序排 else if(A.y!=B.y)return A.y<B.y;//行相同按照列升序排 } int main() { //对于图进行存储 int n,m; cin>>n>>m; for(int i = 0;i < n;i ++ ) { for(int j = 0;j < m;j ++ ) { cin>>g[i][j]; } } //遍历图 for(int i = 0;i < n;i ++ ) { for(int j = 0;j < m;j ++ ) { //我们所要查找的是图中某个元素的右、下,右下元素块是否符合规则 if(g[i][j]=='1'&&g[i+1][j]=='1'&&g[i][j+1]=='1'&&g[i+1][j+1]=='0') { //若符合规则则查其右面的四个元素是否符合 if(g[i][j+7]=='1'&&g[i][j+6]=='1'&&g[i+1][j+7]=='1'&&g[i+1][j+6]=='0') { //若符合规则则查其下面的四个元素是否符合规则 if(g[i+7][j]=='1'&&g[i+7][j+1]=='1'&&g[i+6][j]=='1'&&g[i+6][j+1]=='0') { //若符合规则则查其右下的四个元素是否符合规则 if(g[i+7][j+7]=='1'&&g[i+7][j+6]=='1'&&g[i+6][j+7]=='1'&&g[i+6][j+6]=='0') { //存储解 A.push_back({i,j}); } } } } } } //对于解进行排序 sort(A.begin(),A.end(),cmp); for(int i = 0;i < A.size();i ++ ) { if(i==0)cout<<A[i].x<<' '<<A[i].y; else cout<<endl<<A[i].x<<' '<<A[i].y; } //注意最后一组解之后无回车 return 0; }
时间: 2024-03-23 21:41:30 浏览: 100
C++常用的#include头文件总结
以下是将代码转换成 C 语言代码后的结果:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_N 1010
typedef struct idx {
int x, y;
} idx;
idx A[MAX_N * MAX_N];
int cmp(const void *a, const void *b) {
idx *p = (idx *)a;
idx *q = (idx *)b;
if(p->x != q->x) return p->x - q->x;
else return p->y - q->y;
}
int main() {
int n, m, i, j, T = 0;
char g[MAX_N][MAX_N];
scanf("%d %d", &n, &m);
for(i = 0; i < n; i ++ ) {
scanf("%s", g[i]);
}
for(i = 0; i < n - 1; i ++ ) {
for(j = 0; j < m - 1; j ++ ) {
if(g[i][j] == '1' && g[i+1][j] == '1' && g[i][j+1] == '1' && g[i+1][j+1] == '0') {
if(g[i][j+7] == '1' && g[i][j+6] == '1' && g[i+1][j+7] == '1' && g[i+1][j+6] == '0') {
if(g[i+7][j] == '1' && g[i+7][j+1] == '1' && g[i+6][j] == '1' && g[i+6][j+1] == '0') {
if(g[i+7][j+7] == '1' && g[i+7][j+6] == '1' && g[i+6][j+7] == '1' && g[i+6][j+6] == '0') {
A[T].x = i;
A[T].y = j;
T ++;
}
}
}
}
}
}
qsort(A, T, sizeof(idx), cmp);
for(i = 0; i < T; i ++ ) {
if(i == 0) printf("%d %d", A[i].x, A[i].y);
else printf("\n%d %d", A[i].x, A[i].y);
}
return 0;
}
```
阅读全文