人生亦梦


私信TA

用户名:uq_55161405400

访问量:8868

签 名:

追寻强大且简洁的算法解疑,不会有难题,因而我为此痴迷

等  级
排  名 3070
经  验 2049
参赛次数 1
文章发表 25
年  龄 0
在职情况 学生
学  校
专  业 网络空间安全

  自我简介:

菜,并痴迷着; 爱,并奋斗着

解题思路:

注意事项:

参考代码:

/*思路:

      已知id顺序选取,则将数输入存储(空格,换行处理如下),并排序

      然后,遍历数组,若相邻数组元素差值为0(重号)

      若相邻数组元素差值为1(正常),否则为断号

      最后打印即可*/


//但该程序,一直运行超时,???百思不得其解,求助大佬


#include<stdio.h>

int main ()

{

int n,temp,x1,x2,a[100];//temp为排序时的替换变量

int i=0;                //x1,x2存储断号ID,重号ID              

scanf("%d",&n);

getchar();              //除去第一个回车

while(n--)

{

while(scanf("%d",&a[i]))   //感觉是这里的问题

{

i++;

if(getchar()=='\n')  //获取下一行

break;

else continue;

}

}

for(int k=0;k<i;k++)         //排序

for(int j=k;j<i-1;j++)

{

if(a[k]>a[j+1])

{

temp=a[k];

a[k]=a[j];

a[j]=temp;

}

else if(a[k]==a[j+1])

      x1=a[k];

}

for(int k=0;k<i-1;k++)    //检索

{

if(a[k+1]-a[k]==2)

{

           x2=a[k]+1;

           break;

}

}

printf ("%d %d",x2,x1);

return 0;

}


 

0.0分

0 人评分

  评论区

  • «
  • »