WilliamAAAAAA 2019-01-28 21:27 采纳率: 0%
浏览 742

1-D数列有序 问题C ACM

数列有序
有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数x,请将该数插入到序列中,并使新的序列仍然有序。
提交时总是超时
不知道哪里还可以改进

#include<stdio.h>
int main(){
    int m,n,i;
    int a[101];
    while(~scanf("%d %d",&m,&n)&&(m!=0||n!=0)){
        for(i=0;i<n;i++)
        scanf("%d",&a[i]);
        for(i=0;i<n;i++){
            if(a[i-1]<=m&&a[i]>=m){
                a[i+1]=a[i];
                a[i]=m;
            }
        }
        for(i=0;i<=n-1;i++){
            printf("%d ",a[i]);
        }
        printf("%d",a[i]);
    }
}
  • 写回答

3条回答 默认 最新

  • threenewbee 2019-01-28 23:25
    关注

    while(~scanf("%d %d",&m,&n)&&(m!=0||n!=0)){
    这种玩弄技巧而毫无可读性的代码应该改正。

    100个数字插入,这种算法超时只有一个原因,就是你玩弄技巧导致输入的代码有问题,或者产生了死循环。
    你没有给出m n的含义,也不知道你的输入是什么样的格式,这个你自己检查下。

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料