#include <stdio.h>

int main() { int nums[30]; // 存储每天面试的学生数 int i, j, k; // 循环计数器 int sum = 0; // 当前连续数的和 int flag = 0; // 是否找到符合条件的数列 int start = 0; // 符合条件的数列的起始位置

while (1) {
    // 读入每天面试的学生数
    for (i = 0; i < 30; i++) {
        scanf("%d", &nums[i]);
    }
    
    // 遍历所有可能的连续数列
    for (i = 0; i < 30; i++) {
        sum = nums[i];
        for (j = i + 1; j < 30; j++) {
            sum += nums[j];
            if (sum == 14) { // 找到符合条件的数列
                flag = 1;
                start = i;
                break;
            }
        }
        if (flag) { // 找到符合条件的数列,跳出两重循环
            break;
        }
    }
    
    // 输出结果
    printf("%d ", start + 1); // 数列的起始位置要加1
    for (k = start + 1; k <= j; k++) { // 输出数列
        printf("%d ", nums[k]);
    }
    printf("\n");
    
    // 重置变量
    sum = 0;
    flag = 0;
    start = 0;
    
    // 判断是否结束
    if (nums[0] == 0) {
        break;
    }
}

return 0;

}

C语言实现:查找连续子数组和为14

原文地址: https://www.cveoy.top/t/topic/oWg0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录