一组有序数,插入一个数,按原序规律插入,流水灯c语言程序

一数组按顺序序存放,插入一个数,按原来排序规律放在相应位置_c语言吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:316,850贴子:
一数组按顺序序存放,插入一个数,按原来排序规律放在相应位置收藏
前面已经有一道类似的题目为这道题做铺垫,我已经做出来啦。前面的题目是这样的:用选择法对10个数进行排序。
我的做法,就是一个个对比扫描,从左到右递增。代码如下:#include &stdio.h&#define N 10int main (){
int array[N];
int i,j,k, // i 为基准位置,j 为当前被扫描元素位置,k 用于暂存出现的较小的元素的位置
for (i = 0; i &=9; i++)
scanf ("%d", &array[i]);
for (i=0;i&9;i++)//从第一个元素左到右扫描。
k=i;//初始化为基准位置
for(j=i+1;j&9;j++)
if (array[j]&array[k])
// k 始终指示出现的较小的元素的位置
temp=array[j];
array[j]=array[k];
}// 将此趟扫描得到的最小元素与基准互换位置
for (i = 0; i &= 9; i++)
printf ("%3d", array[i]);
printf ("\n");}那么遇到这道题,我是这么想的。我先给一个10个元素的数组赋值并递增,然后用键盘添加一个数。再用上一题的方法,再从头到尾扫描。#include &stdio.h&int main (){
//用折半法做不出来,改为用选择法。 int array[11] = {0};int t, i ,n,for (i = 0; i & 10; i++)if (i == 0) array[0] = 1;elsearray[i] = array[i-1] +
//自动对数组赋值。for (i = 0; i & 10; i++)printf ("%3d ", array[i]);printf ("\n");scanf ("%d", &array[10]);
//通过键盘对第11个元素赋值。for (i = 0; i & 11; i++)for (j = i+1; j & 11; j++){if (array[j] & array[i]){t = array[i];array[i] = array[j];array[j] =
//如果后面的数大于前面的数,那么两个数互换。}}for (j = 0; j & 11; j++)printf ("%3d ", array[i]);printf ("\n");
//对这11个元素进行输出。}运行时候,通过键盘赋值时候,新的数组就变成了一堆垃圾值。运行结果:
16382801638280Press any key to continue
建议楼主写一个排序的函数
#include&stdio.h&#define N 11int main( void ){
void Sort( int *p );
//数组排序函数
//定义数组
//定义指向数组的指针
for ( i = 1; i & ( N - 1 ); i++ )
//自动赋值
a[i] = a[i-1] + 3;
for ( i = 0; i & ( N - 1 ); i++ )
printf("%d ",a[i]);
printf("\n输入数字:\n");
scanf("%d",&a[N - 1]);
//接收第十一个元素
Sort( p );
//用函数排序
for ( i = 0; i & N; i++ )
printf("%d ",a[i]);
printf("\n\nHello World!\n");
return 0;}//数组排序函数void Sort( int *p ){
for ( i = 0; i & N - 1; i++ )
for ( j = i + 1; j & N; j++ )
if ( *( p + i ) & *( p + j ) )
t = *( p + i );
*( p + i ) = *( p + j );
*( p + j ) =
}}这样不是好了很多?
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
将一个数插入原有数组的C语言程序
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口您还未登陆,请登录后操作!
C 语言编程
输入一个数据插入数组中,数组任然有序,编程实现
int a[11]={5,9,11,32,45,56,59,62,71,82}; /*任意有序数组,现在只有10个数*/
/*定义x和i*/
scanf("%d",&x);
/*输入要插入的数字*/
for(i=0;i&10;i++)
{if(a[i]&x)
/*找到x应该插的位置,跳出for循环*/
while(i&11)
{a[10]=a[i];
/*把x插入吧,其他数顺序后移*/
for(i=0;i&11;i++)
{printf("\n%d",a[i])
实现的方法不止一种,只是给你一个思路
下面的写法比较清楚, 易读:
大家还关注C语言冒泡、插入法、选择排序算法分析_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者
评价文档:
C语言冒泡、插入法、选择排序算法分析
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
大小:7.84KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢C语言程序设计作业整理Ⅱ_浙大软院C语言_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
C语言程序设计作业整理Ⅱ_浙大软院C语言
C​语​言​程​序​设​计​作​业​整​理继​之​前​的​作​业,​总​结​整​理​出​来​的​~
阅读已结束,如果下载本文需要使用
想免费下载本文?
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢

我要回帖

更多关于 c语言程序设计 的文章

 

随机推荐