| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1811 人关注过本帖, 1 人收藏
标题:高手求解---急用,请速给答案
只看楼主 加入收藏
华尔兹
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2004-4-30
收藏(1)
 问题点数:0 回复次数:18 
高手求解---急用,请速给答案

已知一组已经安排升序排列好的10个数,再输入一个数,将其插入这组数中,用数组编写.

请高手速给答案,谢谢

搜索更多相关主题的帖子: 求解 
2004-04-30 17:57
jzh2004
Rank: 1
等 级:新手上路
帖 子:341
专家分:0
注 册:2004-4-30
收藏
得分:0 
插入排序法?每本数据结构书上都有

我的主页 http://www.
2004-04-30 23:22
铁棒磨针
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2004-4-29
收藏
得分:0 

刚学数据结构不久顺便练练

/* 已知一组已经安排升序排列好的10个数,再输入一个数,将其插入这组数中,用数组编写. */ #include <stdio.h> #include <stdlib.h> typedef int DataType; #include "seqlist.h"

int main() { int i,k,k1,j,num; SeqList L; srand((int)time(0));

/*初始化随即*/

SetList(&L,11); /*构造函数*/

for(i=0;i<10;i++) InsertRear(&L,rand()%50);

/*随即赋10个值*/

/* 对数组排序 */ for(i=0;i<10;i++) { k=1; /* 记录是否发生交换 */

for(j=9;j>i;j--) { if(GetData(&L,j-1)>GetData(&L,j)) /* 如果前一元素大于后一元素,交换 */ { k=GetData(&L,j-1); k1=GetData(&L,j); SetData(&L,k1,j-1); SetData(&L,k,j); } }

if(k==1) /* 如果没发生交换退出 */ break; }

puts("Enter the number:"); /* 输入要插入的数字 */ scanf("%d",&num); printf("\n");

for(i=0;i<10;i++) { if(GetData(&L,i)>num) /* 找出比插入元素大的下标 */ break; }

Insert(&L,num,i); /* 在此下标处插入元素num */

for(i=0;i<11;i++) printf("%4d",GetData(&L,i));

return 0; }

2004-05-01 01:08
jerrybeing
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2004-4-28
收藏
得分:0 
原始

2004-05-02 21:30
世事难料
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2004-5-3
收藏
得分:0 
路过
2004-05-04 14:50
蛤蟆
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2004-5-4
收藏
得分:0 

2楼的

不用这么夸张吧

不过是数组中插入一个元素而已


在暗蓝色的海上,海水在欢快地泼溅。 我们的心是自由的,我们的思想无边。
2004-05-04 15:00
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 

#include <stdio.h> #include <stdlib.h> // for the malloc function #include <memory.h> // for the memcpy(...) int main() { const int N = 10; double num1[N] = {2,4,6,8,10,12,14,16,18,20}; // for test double aNum = 26;

// get the length this double array int length = sizeof(num1)/sizeof(double); // get the size for the new double array size_t size = (length+1)*sizeof(double);

// allocate the memory space for the new double array double * num2 = (double *)malloc(size);

memset(num2, 0, size);

// find out the appropriate the position to // insert the new value

int insertPos = 0; bool insert = true; for(int i = 0; i<N; i++) { if(aNum>num1) insertPos++; else if(aNum == num1) { insert = false; break; } else break; }

if(insert) { memcpy(num2, num1, insertPos*sizeof(double)); num2[insertPos] = aNum; memcpy(&num2[insertPos+1], &num1[insertPos], (N-insertPos)*sizeof(double)); // display for(int k = 0; k<N+1; k++) printf("%lf ", num2[k]); } else { for(int k = 0; k<N; k++) printf("%lf ", num1[k]); } printf("\n");

free(num2);

return 0; }


自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
tvrc200379
Rank: 1
等 级:新手上路
帖 子:351
专家分:0
注 册:2004-3-30
收藏
得分:0 

楼上的好厉害啊!


我是灌水天堂的新版主,请新老用户来报道啊 (欢迎来灌水。。。) 哈哈哈。。。。 http://websx.home./bbs/list.asp?boardid=35
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 

C++ 板块现在比较冷清,所以先来这里凑凑热闹


自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
空前
Rank: 1
等 级:新手上路
帖 子:1146
专家分:0
注 册:2004-5-11
收藏
得分:0 

我是这样想的:将一个数插放到数组的最后面,然后重新对数组排序。

main()

{ int a[11]={1,3,5,8,9,11,16,17,20,25},i,,j,n,t;

scanf("%d",&n); a[10]=n;

for(i=0;i<=9;i++)

for(j=i+1;j<=10;j++)

if(a[i]>a[j]) {t=a[i];a[i]=a[j];a[j]=t;}

for(i=0;i<=10;i++)

printf("%d,",a[i]);

printf("\n");

}

不知道对不对,还望指教!


  • 19
  • 1/2页
  • 1
  • 2
快速回复:高手求解---急用,请速给答案
数据加载中...
 
   



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

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