| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 827 人关注过本帖
标题:[求助]求救,帮我用C语言作作这两道题目
只看楼主 加入收藏
我是菜鸟请帮我
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2005-7-4
收藏
 问题点数:0 回复次数:9 
[求助]求救,帮我用C语言作作这两道题目

1 编写程序JOSEPHUS.CN<100)个小孩围成一圈,并给他们依次编号,老师指定从第S个小孩开始报数,报到第M个小孩出列,然后从下一个小孩开始报数,依次重复下去,直到所有的孩子都出列,试输出小孩的出列顺序。

要求:

(1) NSM从命令行输入,将小孩的出列顺序输出到屏幕和JOSEPHUS.DAT文件中。

(2) 用结构数组实现:struct child { int nextp; /* 指向下一个小孩 */

int num; /* 小孩的号码 */

} link[100];

2.编写希尔排序程序SHELL.C

希尔排序的基本思想是:先将整个待排序中的n个元素序列分割成若干个子序列分别进行排序,待整个序列中的元素“基本有序”时,再对全体记录进行一次排序。具体操作是:首先取增量d1=n/2,所有距离为d1倍数的元素进行比较排序,然后取d2=d1/2,重复上述分组和排序,直至取di=1,进行一次比较排序后,所有元素将正确排好序。

例如,要把下列数据元素按升序排列,则希尔排序的过程如下图所示。

75 76 74 25 34 19 12 65 初始状态

34 19 12 25 75 76 74 65 d1=n/2=4


12 19 34 25 74 65 75 76 d2=d1/2=2


12 19 25 34 65 74 75 76 d3=d2/2=1

希尔排序过程

要求:

(1) 待排序的数据个数n和数据放在文件SHELL.IN中。

(2) 从命令行输入文件名SHELL.IN,根据SHELL.IN中的待排序数据个数n,对接收数据的指针变量*v进行动态内存分配。

(3) 将输入的待排序数据按一行5个数据显示在屏幕上。排序结果输出到屏幕上的同时输出到文件SHELL.OUT中。

搜索更多相关主题的帖子: C语言 Roman Times 
2005-07-04 10:51
我是菜鸟请帮我
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2005-7-4
收藏
得分:0 
怎么没人帮我

2005-07-04 10:53
盖茨他爹
Rank: 6Rank: 6
等 级:贵宾
威 望:28
帖 子:5255
专家分:0
注 册:2005-5-3
收藏
得分:0 
最讨厌让别人做作业的人
2005-07-04 15:36
weizheng
Rank: 1
等 级:新手上路
威 望:2
帖 子:286
专家分:0
注 册:2005-4-21
收藏
得分:0 
关于希尔排序只给你算法,你自己改吧
    void shellsort(int v[],int n)
{     int gap,i,j,temp;
      for(gap= n/2;gap&gt;0;gap/=2)
      for(i=gap;i&lt;n;i++)
      for(j=i-gap;j&gt;=0&amp;&amp;v[j]&gt;v[j+gap];j-=gap){
          temp=v[j];
          v[j]=v[j+gap];
          v[j+gap]=temp;
         }
}

温和如玉,完美纯正。
2005-07-04 17:05
wxly
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2005-7-4
收藏
得分:0 
我不会,只好帮你顶一下了,呵呵
2005-07-04 21:10
我是菜鸟请帮我
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2005-7-4
收藏
得分:0 
谢谢了,老师一点都没讲过的,要我们作,我是想先读读源程序,读懂后在自己写~~

2005-07-05 09:02
只敢学习
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2005-7-4
收藏
得分:0 
学C老师不能没给讲过结构体吧,,狂汗,,,怎么说现在也是一个学期末了,你不用考试的吗?

2005-07-05 13:33
anycall628
Rank: 1
等 级:新手上路
帖 子:222
专家分:0
注 册:2005-2-18
收藏
得分:0 
如果数是这样的: 75 74 25 34 76 65 19 12 75 65 19 12 76 74 25 34 d1=n/2=4 19 12 65 75 25 34 74 76 d2=d1/2=2 12 19 65 75 25 34 74 76 d3=d2/2=1 怎么会是这个样子?是不是我哪里理解错了?帮解释一下啊

爱生活,爱编程。
2005-07-05 21:24
我是菜鸟请帮我
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2005-7-4
收藏
得分:0 
讲到了数组和指针,但都是皮毛呀,后面就全没讲过了!!
现在要我们作课程设计呀!
真是苦呀~~

2005-07-06 08:51
anycall628
Rank: 1
等 级:新手上路
帖 子:222
专家分:0
注 册:2005-2-18
收藏
得分:0 
都什么社会了还指望跟老师学知识啊,自学才是硬道理

爱生活,爱编程。
2005-07-07 22:10
快速回复:[求助]求救,帮我用C语言作作这两道题目
数据加载中...
 
   



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

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