|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
假设现在有一组数 0 ,1, 1 ,1, 0, 0 ,0 ,1 ,1 ,1 ,1 ,1 ,0 ,0 ,1 ,1 ,0
我们现在对其求非0连续数及坐标 有 1, 长度为3
有 7 长度为 5
有 14 长度为2
要求输出结果 最长连续长度为 5 坐标为 7 8 9 10 11
我觉得不是很难啊 怎么卡住了呢
本帖最后由 jhq999 于 2022-6-7 17:07 编辑
- int main()
- {
- int a[]={0 ,1, 1 ,1, 0, 0 ,0 ,1 ,1 ,1 ,1 ,1 ,0 ,0 ,1 ,1 ,0};
- int i=0,j=0,flag=0,len=0,n=sizeof(a)/sizeof(int),max=0;
- for(i=0;i<n;i++)
- {
- //if(flag==0&&a[i])printf("%d,",i);
- if(a[i])flag=1,len++;
- else flag=0;
- if(len&&flag==0)if(max<len)max=len,len=0;
- if(n<max+i)break;
- }
- flag=0;
- printf("%d,",max);
- for(i=0;i<n;i++)
- {
- //if(flag==0&&a[i])printf("%d,",i);
- if(a[i])flag=1,len++;
- else flag=0;
- if(len&&flag==0)
- if(max==len)
- {
- for(i=i-len;len>0;len--)printf("%d ",i+max-len);
- break;//////如果不是唯一可以注释掉,前面改成 for(j=i-max;j<max;j++)printf("%d ",j);len=0;
- }
- else
- len=0;
- }
- return 0;
- }
复制代码- 5,7 8 9 10 11
- Process returned 0 (0x0) execution time : 0.237 s
- Press any key to continue.
复制代码
|
|