不用再等 2021-10-01 09:32 采纳率: 62.5%
浏览 21

我还是懂得太少,这确实难度太大,求解答

问题:输入N个数字,判断其中连续5个数的最大值,连续的定义为按输入顺序,数列尾和数列首我们也认为是连续的,输入数据保证只会出现一组最大值

输入,怎样求出和最大的连续的5个数;
如:
输入:
20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
输出:
The position is 16,17,18,19,20
The numbers are 16,17,18,19,20
The MAX is 90

  • 写回答

1条回答 默认 最新

  • qfl_sdu 2021-10-01 10:17
    关注

    代码如下:

    #include <stdio.h>
    #include <stdlib.h>
    int main()
    {
        int N;
        int* p = 0;
        int i,j,max = 0,tp = 0;
        int index = 1;
        scanf("%d",&N);  
        if(N < 5)
        {
            printf("输入的数字小于5");
            return 0;
        }
        p = (int*)malloc((N+4)*sizeof(int));
        for(i=0;i<N;i++)
            scanf("%d",&p[i]);
        //复制前四个数到末尾
        for(i=0;i<4;i++)
        {
            p[N+i] = p[i]; 
            max += p[i];
        }
        
        max += p[4];
        for (i = 1;i<N;i++)
        {
            tp = 0;
            for (j=0;j<5;j++) //计算5个数的和
                tp += p[i+j];
            if(tp > max)
            {
                max = tp;
                index = i+1;
            }
        }
        printf("The position is ");
        for(i=0;i<5;i++)
        {
            if(i<4)
                printf("%d ",index+i);
            else
                printf("%d\n",index+i);
        }
        printf("The numbers are ");
        for(i=0;i<5;i++)
        {
            if(i<4)
                printf("%d ",p[index+i-1]);
            else
                printf("%d\n",p[index+i-1]);
        }
        printf("The Max is %d",max);
        free(p);
        p = 0;
        return 0;
    }
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 10月1日

悬赏问题

  • ¥15 python实现CAD识图
  • ¥15 如何实现在renpy中创建并应用不同大小尺寸对话框?
  • ¥15 table表格有一列是固定列 滑动到最下面时 固定的那一列有几行没显示出来
  • ¥20 单细胞数据注释时报错
  • ¥20 dify工作流分析sql查询结果
  • ¥15 vscode编译ros找不到头文件,cmake.list文件出问题,如何解决?(语言-c++|操作系统-linux)
  • ¥15 通过AT指令控制esp8266发送信息
  • ¥15 有哪些AI工具提供可以通过代码上传EXCEL文件的API接口,并反馈分析结果
  • ¥15 二维装箱算法、矩形排列算法(相关搜索:二维装箱)
  • ¥20 nrf2401上电之后执行特定任务概率性一直处于最大重发状态