已掉线,重新登录

首页 > 绿虎论坛 > 历史版块 > 手机 > 安卓

标题: c语言数组求教

作者: @Ta

时间: 2014-06-13

点击: 2348



如图【任务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|显示机器人聊天)』

1. 直接贴代码好看,图片多不方便,
(/@Ta/2014-06-13 22:41//)

2.
#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 22:41//)

3. @,求教
(/@Ta/2014-06-13 23:19//)

4. @HW,还是不会填上面的空,已经写成文字形式了
(/@Ta/2014-06-13 23:20//)

5. #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");
}
(/@Ta/2014-06-13 23:37//)

回复需要登录

7月13日 11:38 星期天

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1