#include <iostream> #include <vector> using namespace std; int main() { int n; while (cin >> n) { vector<int> nums(n); for (int i = 0; i < n; i++) { cin >> nums[i]; } int count = 0; for (int i = 1; i < n - 1; i++) { int left = 0, right = n - 1; while (left < i && right > i) { int sum = nums[left] + nums[right]; if (sum == nums[i] * 2) { count++; break; } else if (sum < nums[i] * 2) { left++; } else { right--; } } } cout << count << endl; } return 0; }将这个代码转化为c语言代码
时间: 2023-12-03 19:42:45 浏览: 213
以下是将该代码转化为 C 语言代码的过程:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int n;
while (scanf("%d", &n) != EOF) {
int* nums = (int*) malloc(n * sizeof(int));
for (int i = 0; i < n; i++) {
scanf("%d", &nums[i]);
}
int count = 0;
for (int i = 1; i < n - 1; i++) {
int left = 0, right = n - 1;
while (left < i && right > i) {
int sum = nums[left] + nums[right];
if (sum == nums[i] * 2) {
count++;
break;
} else if (sum < nums[i] * 2) {
left++;
} else {
right--;
}
}
}
printf("%d\n", count);
free(nums);
}
return 0;
}
```
主要的修改如下:
- `#include <iostream>` 改为 `#include <stdio.h>`。
- `using namespace std;` 去掉。
- `cin` 改为 `scanf`。
- `vector<int> nums(n);` 改为 `int* nums = (int*) malloc(n * sizeof(int));`,使用 `malloc` 分配动态数组。
- `cout` 改为 `printf`。
- 添加了 `free(nums)` 释放动态数组内存。
阅读全文