c语言数组求教



如图【任务2】已知一个有序序列{5,8,12,15,26,78,92,93,102},现要求将数据值25插入到该序列中,插入后仍然保证数据序列的有序性。
算法分析:
(1)定义一维数组a[N]存放已知的有序序列{5,8,12,15,26,78,92,93,102}。
(2)从数组的最后一个元素开始和需要插入的数据值25进行比较,如果当前元素值比25大,则元素值后移1位(即下标+1)。
(3)重复步骤2,直到找到第一个比25小的数组元素a,该元素的直接后继就应该是25,所以25在数组中的正确下标应该是i+1。
(4)将数据值25插入到数组的正确位置上,即a[i+1]=25。
#include <stdio.h>
#define N 10
void main()
{ __________; //blank1:步骤1
int i=N-2,data=25;
while(__________) //blank2:步骤2和步骤3
{ __________;
__________;
}
__________; //blank3:步骤4
printf("输出插入25后的有序序列\n");
for(i=0;i<N;i++)
printf("%-5d",a);
printf("\n");
}
回复列表(5|隐藏机器人聊天)
  • HW
    @Ta / 2014-06-13 / /
    直接贴代码好看,图片多不方便,
  • HW
    @Ta / 2014-06-13 / /

    #include <stdio.h>
    #define N 9
    main ()
    {
    int a[N]={5,8,12,15,26,78,92,93,102};
    int b,c,d=25,e;
    for (c=0;c<N;c++)
    {
    if (a[c]>d) { e=c;break;}}
    for (c=0;c<e;c++)
    printf ("%-5d",a[c]);
    printf ("%-5d",d);
    for (c=e;c<N;c++)
    printf ("%-5d",a[c]);
    }


    功能一样
  • @Ta / 2014-06-13 / /
    @,求教
  • @Ta / 2014-06-13 / /
    @HW,还是不会填上面的空,已经写成文字形式了
  • @Ta / 2014-06-13 / /
    #include <stdio.h>
    #define N 10
    void main()
    { int a[N]={5,8,12,15,26,78,92,93,102}; //blank1:步骤1
    int i=N-2,data=25;
    while(a>data) //blank2:步骤2和步骤3
    { a[i+1]=a;
    i--;
    }
    a=data; //blank3:步骤4
    printf("输出插入25后的有序序列\n");
    for(i=0;i<N;i++)
    printf("%-5d",a);
    printf("\n");
    }
添加新回复
回复需要登录