标题:杭电——2019,自己调试没问题,提交不成功
只看楼主
小小程序猿
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:1
帖 子:755
专家分:2785
注 册:2013-7-18
结帖率:100%
已结贴  问题点数:30 回复次数:5 
杭电——2019,自己调试没问题,提交不成功
问题描述:有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数x,请将该数插入到序列中,并使新的序列仍然有序。
Input:输入数据包含多个测试实例,每组数据由两行组成,第一行是n和m,第二行是已经有序的n个数的数列。n和m同时为0标示输入数据的结束,本行不做处理。
Output:对于每个测试实例,输出插入新的元素后的数列。
代码:
#include <iostream>
using namespace std;
int  main()
{
    int n,m,i,sign;
        int *arr;
    while( scanf("%d%d",&n,&m)!=EOF)
    {
        if(!(n==0&&m==0))
        {
            arr=new int[n+1];
            scanf("%d",&arr[0]);

            if(arr[0]>m)
            {
                arr[1]=arr[0];
                arr[0]=m;
                i=2;
                sign=n+1;
            }
            else
            {
                i=1;
                sign=n;
            }
            for(;i<sign;i++)
            {
                scanf("%d",&arr[i]);
               
                if(m>arr[i-1]&&m<arr[i])
                {
                    arr[i+1]=arr[i];
                    arr[i]=m;
                    i++;
                    sign++;
                }
            }
            if(m>arr[n-1])
            {
                arr[n]=m;
            }
            for(i=0;i<=n;i++)
            {
                printf("%d ",arr[i]);
            }
            printf("\n");
        }
    }
    return 0;
}

杭电提示:View Compilation Error
0_0_10524027_8187.c
\include\cerrno(18) : error C2143: 语法错误 : 缺少“{”(在“:”的前面)
\include\cerrno(18) : error C2059: 语法错误 : “:”
\include\cstdio(17) : error C2143: 语法错误 : 缺少“{”(在“:”的前面)
\include\cstdio(17) : error C2059: 语法错误 : “:”
\include\cstdio(17) : error C2143: 语法错误 : 缺少“{”(在“:”的前面)
\include\cstdio(17) : error C2059: 语法错误 : “:”
\include\cstdio(17) : error C2143: 语法错误 : 缺少“{”(在“:”的前面)
\include\cstdio(17) : error C2059: 语法错误 : “:”
\include\cstdio(18) : error C2143: 语法错误 : 缺少“{”(在“:”的前面)



等大神指点
搜索更多相关主题的帖子: include 标示 元素 
2014-04-11 22:56
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
得分:25 
C++的话为什么不用 cout ?

主要错在输出格式 最后一个数不跟空格

程序代码:
#include <stdio.h>

int main()
{
    int m, n, tmp;
    while (2 == scanf("%d%d", &n, &m) && n && m)
    {
        while (n--)
        {
            scanf("%d", &tmp);
            if (tmp > m)    break;
            printf("%d ", tmp);
        }
        if (0 < n) printf("%d ", m);
        else if (0 == n)
        {
            printf("%d %d\n", m, tmp);
            continue;
        }
        else
        {
            printf("%d\n", m);
            continue;
        }
        while (n--)
        {
            printf("%d ", tmp);
            scanf("%d", &tmp);
        }
        printf("%d\n", tmp);
    }
    return 0;
}


[fly]存在即是合理[/fly]
2014-04-12 01:26
小小程序猿
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:1
帖 子:755
专家分:2785
注 册:2013-7-18
得分:0 
以下是引用azzbcc在2014-4-12 01:26:38的发言:

C++的话为什么不用 cout ?

主要错在输出格式 最后一个数不跟空格

#include <stdio.h>

int main()
{
    int m, n, tmp;
    while (2 == scanf("%d%d", &n, &m) && n && m)
    {
        while (n--)
        {
            scanf("%d", &tmp);
            if (tmp > m)    break;
            printf("%d ", tmp);
        }
        if (0 < n) printf("%d ", m);
        else if (0 == n)
        {
            printf("%d %d\n", m, tmp);
            continue;
        }
        else
        {
            printf("%d\n", m);
            continue;
        }
        while (n--)
        {
            printf("%d ", tmp);
            scanf("%d", &tmp);
        }
        printf("%d\n", tmp);
    }
    return 0;
}


我试了试,还是没有 A

另外,如果我输入的 m 是 0的话,你的程序就挂了

孤独与寂寞是催化一个人迅速成长的良药,没有之一
2014-04-12 12:09
loveClangage
Rank: 8Rank: 8
来 自:广东云浮
等 级:蝙蝠侠
帖 子:326
专家分:891
注 册:2013-8-23
得分:5 
输出格式都有要求的,

编写的程序,不能改变世界,却可以改变自己...
2014-04-13 13:47
书生等待
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:280
专家分:689
注 册:2013-2-22
得分:0 
先不看程序,自己写下,学习下
2014-04-14 11:17
ying8501
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:1092
专家分:1446
注 册:2008-11-24
得分:0 
试试。
#include <stdio.h>
int  main()
{
    int n,m,i,arr[101];

    while( ( scanf("%d%d",&n,&m) , m||n ) )
    {
        for(i=0;i<n;i++)
            scanf("%d",&arr[i]);

        for(i=n-1;i>=0;i--)
            if(arr[i]>m) arr[i+1]=arr[i];            
            else
            {
                arr[i+1]=m;
                break;
            }

         if(i==-1)arr[0]=m;

         for(i=0;i<=n;i++)
                printf("%d ",arr[i]);
            printf("\n");
      }
    return 0;
}
2014-04-15 10:13



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-429982-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.278139 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved