问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

数据结构,约瑟夫环

发布网友 发布时间:2022-05-07 01:13

我来回答

3个回答

热心网友 时间:2023-10-10 11:09

我这个程序可能与你要求不一样,给个参考你吧。
输入总数,开始计算的位置,每次数的数,循环输出被点到的数的顺序,运行没有问题,VC6.0,注释全,User Friendly

#include<stdio.h>

#define MAX 1024

int josephu ( int , int , int ); /* function prototype */

/**
* Function main read three numbers and call function
* josephu by passing them.
*
*/
void main()
{
long num; /* total number of lemps */
long skip; /* skip number */
long begin; /* which lamp to begin with */

printf ( "Please input total number, skip number and begin number:\n"
"(integer numbers required)\n ");
scanf ( "%ld %ld %ld" , &num , &skip , &begin );

if ( num < skip || num <= 0 || skip <= 0 || begin <= 0 || skip >= num || begin >= num ) {
printf ( "Error data input!\n" );
}
else
josephu ( num , skip , begin );
}

/**
* This function output the order of lamps-off.The number of
* total lamps,skip and begin number is input by user.
* Then comment the formal parameters and return value
* as the following:
*
* @param num total number of lamps.
* @param skip skip number.
* @param begin lamp begin with.
* @return 0 indicates program ended successfully.
*/
int josephu ( int num , int skip , int begin )
{
int JOSEPHU[MAX]; /* create array */
int flag = 0; /* If flag is equal to skip, print the current number */
int i; /* loop counter */

begin = begin - 1;

printf ( "\nThe original order of lamps:\n" );

/* Assignment the array and assignment the element not used 0 and finally display it. */
for( i = 0 ; i < num ; i++ ) {
JOSEPHU[i] = i + 1;
printf ( "%d " , JOSEPHU[i] );
}

printf ( "\n\n" );
printf ( "The order of lights off:\n" );

/* JOSEPHU[begin]=JOSEPHU[begin-1] */
for ( i = 2 ; ; i++ ) {
/* If the current element is not equal to the last elemnet of array JOSEPHU,then the next element. */
if ( JOSEPHU[begin] != JOSEPHU[num - 1] )
begin++;

else {
begin = 0;

/* If the current element is equal to the last element,then the first element. */

while ( JOSEPHU[begin] < 0 ) /* When there are negative elements,skip them. */
begin++;

/* If satisfied, print the element and assignment it as negative, and increase the value of flag. */
if ( i % skip == 0 ) {
printf ( "%d " , JOSEPHU[begin] );
JOSEPHU[begin] = -JOSEPHU[begin];
flag++;
}

if ( flag == num ) /* If flag is equal to total number, the loop is broken. */
break;
}/* end else */

/* In or at the end of the array,deal with the negative element. */
while ( JOSEPHU[begin] < 0 && JOSEPHU[begin] != JOSEPHU[num - 1] )
begin++;

while ( JOSEPHU[begin] < 0 && JOSEPHU[begin] == JOSEPHU[num - 1] ) {

begin = 0;

while ( JOSEPHU[begin] < 0 )
begin++;
}/* end while */

if ( i % skip == 0 ) {

printf ( "%d " , JOSEPHU[begin] );
flag++;

JOSEPHU[begin] = -JOSEPHU[begin];
}/* end if */

if ( flag == num )
break;

if ( JOSEPHU[begin] == JOSEPHU[num - 1] ) {

i++;

begin = 0;
while ( JOSEPHU[begin] < 0 ) {

begin++;
}/* end while */
if ( i % skip == 0 ) {

printf ( "%d " , JOSEPHU[begin] );
JOSEPHU[begin] = -JOSEPHU[begin];

flag++;
}
}
}/* end for */
printf ( "\n" );

return 0;
}

热心网友 时间:2023-10-10 11:09

你是我群里的吧。。。。明天上线找我 我给你发个以前我做的约瑟夫环 你看看 明天中午左右 乾坤

热心网友 时间:2023-10-10 11:10

free(p),就是释放了原有的指针,没必要去掉呀!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
街头篮球手游中锋攻略汇总 C位攻略大全 街头篮球手游中锋有什么技巧 中锋C技巧详解 php一个表单提交数据怎么区分开,隐藏域可以吗,如果可以怎么用。 梦见牙掉光了什么预兆 梦见牙齿掉完了是什么征兆 梦见牙齿全掉了是什么预兆 梦见一口牙全部掉了是什么预兆 教师年度考核不认课的领导班子成员,干的工作不少,怎样考核办法公平... 湖北省郧西县义务教育学校绩效工资实施办法绩效工资总量和水平的... 事业单位年底是否有绩效奖金的 约瑟夫环(c语言版数据结构) 下面是约瑟夫环的代码,跪求大神帮忙写出代码对应的算法!越详细越好! 数据结构中的约瑟夫环问题用C语言怎么编写出来啊? C语言数据结构“采用单向环表实现约瑟夫环。” 数据结构C语言 约瑟夫环 急!! 数据结构约瑟夫环问题急求程序 数据结构(c语言版)--约瑟夫环 关于C语言数据结构的问题(约瑟夫环) 2019年十级伤残赔偿多少钱? 数据结构C语言的约瑟夫环怎么做? 约瑟夫环 c++ 数据结构 用数据结构编写约瑟夫环算法思想 约瑟夫环(Joseph)问题数据结构的实验。c++编程~ 数据结构设计约瑟夫环问题 林芝十级工伤伤残赔偿标准与计算方法 约瑟夫环公式是怎样推导出来的? 约瑟夫环 PHOTOSHOP CS6 EXTENDED【64bit】安装portraiture怎么安装? 承揽合同属于单务合同吗 数据结构 约瑟夫环 为什么我的ps中的portraiture磨皮滤镜突然用不了了 约瑟夫环问题 用C语言数据结构数组实现... 数据结构约瑟夫环问题(解决了给加50分) 谁能用循环队列的数据结构解决约瑟夫环问题? 计算机一级excel如果不用下拉,而是自己按照公式一个一个计算。会给分吗? 彩云家乡 跪求一首歌。我只记得歌词开头第一句,这里的四季都是春天,这里。。。。。家园 北京青年里面女生唱的那首插曲,其中有句歌词是“彩云飘过我的家乡”,叫什么名字啊? 看过《北京青年》的大侠们,电视剧里,主人公们来到丽江的时候(前面应该也出现过),放过一首插曲, 歌词:我的故乡我的家,就在东方彩云下,儿时听的一首很好听的歌,现在网上都找不到。 有谁看过(北京青年)这电视剧,里面有几首歌,它们的歌名分别叫什么???知道的回答一下,谢了 在北京青年里面,何北和唐娇两个在丽江古镇逛街,那时候酒吧放出来的歌曲叫什么? 北京青年主题曲是什么 四个字中最后两字是家乡歌有那些 急求赞美家乡彩云的现代短诗!!! 北京青年 求里面的萨克斯插曲 谢谢各位了~ 求:北京青年云南片段的歌曲,就是他们在刚到云南丽江在逛街的那段的歌曲。谢谢! 求北京青年背景音乐 插曲等 北京青年所有者酒吧的歌 求歌词:北京青年32集开始的插曲,歌词有句叫彩云飘过我的家乡 《北京青年》经常出现的那首爵士乐叫什么