把这段代码从C语言改为C++语言 int q, start, arr[n], queue[n], head, tail, flag; scanf("%d", &q); for(i = 0; i < q; ++i) { for(j = 0; j < n; ++j) arr[j] = 0; scanf("%d", &start); arr[--start] = 1; head = 0, tail = 0; queue[0] = start; while(head <= tail) { for(j = 0; j < n; ++j) if(!arr[j] && canArr[queue[head]][j]) { queue[++tail] = j; arr[j] = 1; } head++; } flag = 0; for(j = 0; j < n; ++j) if(arr[j]) { if(flag) printf(" "); else flag = 1; printf("%d", j+1); } for(int i = 0; i < n; ++i) delete [] D[i]; delete [] D; printf("\n"); }
时间: 2023-12-13 07:04:48 浏览: 84
如何把C++的源代码改写成C代码的方法
以下是将代码从C语言改为C++语言的过程:
```cpp
int q, start;
int arr[n], queue[n];
int head, tail, flag;
cin >> q;
for(int i = 0; i < q; ++i) {
for(int j = 0; j < n; ++j) {
arr[j] = 0;
}
cin >> start;
arr[--start] = 1;
head = 0, tail = 0;
queue[0] = start;
while(head <= tail) {
for(int j = 0; j < n; ++j) {
if(!arr[j] && canArr[queue[head]][j]) {
queue[++tail] = j;
arr[j] = 1;
}
}
head++;
}
flag = 0;
for(int j = 0; j < n; ++j) {
if(arr[j]) {
if(flag) {
cout << " ";
} else {
flag = 1;
}
cout << j+1;
}
}
cout << endl;
}
```
主要改动如下:
1. 使用 `cin` 和 `cout` 代替 `scanf` 和 `printf`;
2. 声明变量需要指定类型;
3. 声明数组时需要指定数组大小;
4. 使用 `delete[]` 代替 `free()` 释放内存。
阅读全文