作业帮 > 综合 > 作业

有n个数,已按从小到大顺序排列好.要求输入一个数,插入原数列中,仍然保持有序

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/01 16:14:29
有n个数,已按从小到大顺序排列好.要求输入一个数,插入原数列中,仍然保持有序
以下是我写的代码:

#include<stdio.h>
int main()
{
    int i,j,k,t,a[11],sum;
    printf("Please input 10 numbers\n");
    for(i=0;i<10;i++)
    {
        scanf("%d",&a[i]);
    }
    for(i=0;i<10;i++)
    {
        printf("%d ",a[i]);
    }
    printf("\n");
    printf("Please input a number:\n");
    scanf("%d",&sum);
    if(sum>a[9])
    {
        a[10]=sum;
        for(i=0;i<11;i++)
        {
            printf("%d ",a[i]);
        }
    }
    else if(sum<a[0])
    {
        a[10]=sum;
        for(i=0;i<11;i++)
        {
            t=a[0];
            a[0]=a[10];
            a[10]=t;
        }
        for(i=0;i<11;i++)
        {
            printf("%d ",a[i]);
        }
    }
    else if(sum>a[0]&&sum<a[10])
    {
        for(j=0;j<10;j++)
        {
            if(sum<a[j])
            k=j;
            break;
        }
        for(i=k;i<11;i++)
        {
            t=a[i];
            a[i]=a[10];
            a[10]=t;
        }
        for(i=0;i<11;i++)
        printf("%d  ",a[i]);
    }
    return 0;
}
#include<stdio.h>
int main()
{
    int i,j,k,t,a[11],sum;
    printf("Please input 10 numbers\n");
    for(i=0;i<10;i++)
    {
        scanf("%d",&a[i]);
    }
    printf("Please input a number:\n");
    scanf("%d",&sum);
    if(sum>a[9])
    {
        a[10]=sum;
        for(i=0;i<11;i++)
        {
            printf("%d ",a[i]);
        }
    }
    else if(sum<a[0])
    {
        a[10]=sum;
        for(i=0;i<11;i++)
        {
            t=a[i];//这里是a[i]
            a[i]=a[10];//这里是a[i]
            a[10]=t;
        }
        for(i=0;i<11;i++)
        {
            printf("%d ",a[i]);
        }
    }
    else if(sum>=a[0]&&sum<=a[9])//这里改成sum>=a[0]&&sum<=a[9]
    {
        for(j=0;j<10;j++)
        {
            if(sum<a[j])//改成k=j;和break;都在if(){}块里
\x09\x09\x09{
\x09\x09\x09\x09k=j;
\x09\x09\x09\x09break;
\x09\x09\x09}
        }
\x09\x09a[10]=sum;//加上a[10]=sum,否则a[10]没有初始化
        for(i=k;i<11;i++)
        {
            t=a[i];
            a[i]=a[10];
            a[10]=t;
        }
        for(i=0;i<11;i++)
\x09\x09\x09printf("%d  ",a[i]);
    }
    return 0;