写一串C语言代码,输入一段长度为n的数组,数组中的元素只有1和-1,求子串求和为零的子串的个数
时间: 2023-06-04 10:04:21 浏览: 95
好的,以下是C语言代码:
```
#include <stdio.h>
int main() {
int n, count = 0, sum = 0;
printf("请输入数组长度n: ");
scanf("%d", &n);
int arr[n];
printf("请输入数组元素(1或-1): ");
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
for (int i = 0; i < n; i++) {
sum = 0;
for (int j = i; j < n; j++) {
sum += arr[j];
if (sum == 0) {
count++;
}
}
}
printf("子串求和为零的子串的个数为: %d\n", count);
return 0;
}
```
该代码会要求用户输入数组长度n和数组元素,然后使用两个for循环分别枚举子串的起点和终点,并计算子串内元素的和,如果和为0,就累加计数器count。最后输出结果。
阅读全文