桐立和谷护城明日 2021-11-12 22:52 采纳率: 100%
浏览 55
已结题

求解答,为什么Devc++和vscode,运行

#最长连续子序列:对于一个长度为 N 的数组,输出其连续的子序列及其起止
位置,并且找出长度最长的那个子序列,输出其长度。如
1 2 3 0 1 2 7 -1 -2 -1 0 1
输出:1 2 3 起 1 止 3;
0 1 2 起 4 止 6;
-2 -1 0 1 起 9 止 12;
最长连续子序列为:-2 -1 0 1,长度为:4.

#include<iostream>
using namespace std;
#define N 12
int main(){
    int a[N]{1,2,3,0,1,2,7,-1,-2,-1,0,1};
    int x,y,i,j,k,l,s;
    i=0,s=0;
    while (i<N)
    {   
        x=0;
        k=i;
        while (a[k]+1==a[k+1])
        {
            x++;
            k++;
        }
        if (s<x)
        {
            s=x;
            y=i;
        }
        if (x>=1)
        {   
            for (j=i;j<=k;j++)
            {
                printf("%d ",a[j]);
            }
            printf("起%d止%d\n",i+1,k+1);
        }
        i=k+1;          
    }
        printf("最长连续子序列为:");
    for(l=y;l<=y+s;l++){
        printf("%d ",a[l]);
    } 
    printf("长度为%d",s+1);
   return 0;
}

img

img

  • 写回答

1条回答 默认 最新

  • 关注

    a数组长度为12 下标从0到11
    i 循环到 N-1, k=i; 循环到最后 k=11, a[k+1]是访问a数组12下标,下标就越界了,
    数组下标越界所读取的值是未知且随机的。不同的系统环境会不一样

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月15日
  • 已采纳回答 12月7日
  • 创建了问题 11月12日

悬赏问题

  • ¥20 蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏