查找任何范围的序列

app*_*ppy 5 c arrays sorting range sequence

给定一系列数字,打印每个可用范围.例如阵列:9,3,5,7,4,8,1输出:1,3-5,7-9注意:请执行此问题而不使用其他阵列.

我该怎么办?*

#include<stdio.h>
int main()
{
int a[]={9,8,8,7,6,5,14};
int n= sizeof(a) / sizeof(a[0]);
int i,j;
int temp;
for(i=0;i<n;i++)
         {
               for(j=i+1;j<n;j++)
               {
                     if(a[i]>a[j])
                     {
                           temp=a[i];
                           a[i]=a[j];
                           a[j]=temp;
                     }
               }
        }
}
Run Code Online (Sandbox Code Playgroud)

*1我将按升序排序,我不知道接下来该做什么?PS:我在C编码.

Pau*_*vie 0

下一步是识别序列。尝试以下循环(未完全调试):

first= next= a[0];
for (i=1; i<n; i++) {
    if (a[i] > next+1) {
        if (next>first)
             printf("%d-%d,", first, next);
        else printf("%d,", first);
        first= next= a[i];
    }
    else next++;
}
Run Code Online (Sandbox Code Playgroud)