zyh12571X 2022-11-01 21:41 采纳率: 66.7%
浏览 34
已结题

C语言数组中最大连续子数组的乘积怎么算?(连续就是相邻两个数之间相差一如:1 2 3))

img


连续子组数指的是数字之间相差一,如:1 2 3和5 6 7是两个连续子数组,而5 6 7的乘积大于1 2 3的乘积,所以结果是5×6×7=210

  • 写回答

1条回答 默认 最新

  • 谢玄. 2022-11-01 21:44
    关注

    试试这个

    #include <stdio.h>
    int main() {
        int list[100] = {0};
        char c;
        int i = 0 ;
        // 输入
        for ( i = 0 ; c != '\n' ; i++ ) {
            scanf("%d", &list[i]);
            scanf("%c", &c);
        }
        int max = list[0];
        // 获取遍历开头
        for ( int j = 0 ; j < i ; j++ ) {
            // 获取遍历结尾
            for ( int p = j ; p < i ; p ++ ) {
                printf(" %d - %d : ", j, p);
                // 获取是递增还是递减
                int rate = list[p] - list[j];
                // 遍历 开头到结尾值之和
                int value = 1;
                for ( int q = j ; q <= p ; q++  ) {
                    value *= list[q];
                    printf("%d ", value);
                    if ( q != p ) {
                        if ( (list[q + 1] - list[q]) * rate < 0 ) {
                            printf("x");
                            break;
                        }
                    }
                    
                }
                printf("\n");
                if ( value > max ) {
                    max = value;
                }
            }
        }
        printf("%d", max);
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月9日
  • 已采纳回答 11月1日
  • 创建了问题 11月1日

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?