关于c语言约瑟夫问题输出序号算法
约瑟夫问题
#include#includetypedef struct node{int data;struct node *next;}LNode,*LinkList;int YSF(LinkList m,int n,int l);void main(){int x,y,z;LinkList p,q,r;//p用来指向第一个人,r、q用来实现尾插法构建链表p=(LinkList)malloc(sizeof(LNode));printf("请输入总人数:");scanf("%d",&x);printf("请输入报数大小:");scanf("%d",&y);printf("请输入报数开始人序号:");scanf("%d",&z);r=p;for(int i=1;i<=x-1;i++){q=(linklist)malloc(sizeof(lnode));r->data=i;r->next=q;r=q;}//创建x个单链表q->data=x;q->next=p;//构成循环链表for(int j=1;j<=z-1;j++){p=p->next;}//找到开始报数人printf("请输入序号:");int o;scanf("%d",&o);YSF(p,y,o);}int YSF(LinkList m,int n,int l){while(m->next!=m){for(int k=1;knext;}int s=1;if(l==s){printf("编号为%d的'人出列 ",m->next->data);break;}else {n++;}m->next=m->next->next;//剔除满足报出y人的结点m=m->next;}if(m->next==m)printf("编号为%d的人出列 ",m->data);return 0; }
-
C语言选择结构
引导语:选择结构用于判断给定的条件,根据判断的结果判断某些条件,根据判断的结果来控制程序的流程。以下是本站小编分享给大家的C语言选择结构,帮助大家巩固C语言基础,欢迎阅读学习!1.1用if语句实现选择结构1.在C语言中,if语句有两种形式:形式1:if(表达式)语句形式2:if(...
-
C语言自学入门技巧
学习C语言不是一朝一夕的事情,但也不需要花费很长的时间才能精通。下面小编就为大家介绍一下C语言自学入门技巧吧!C语言自学入门技巧11、程语语言其实是一个很初级的工具,但是又必须熟练的掌握它,学懂一门编程语言就好像学会了写字,但是会写字的人不见得会写文章,而...
-
为什么入门首选C语言?
C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。对于大部分程序员,C语言是学习编程的第一门语言,很少有不了解C的程序员。那么为什么入门首选C语言呢,下面小编为大家介绍一下吧!C...
-
C/C++变量在内存中的分布介绍
变量在内存地址的分布为:堆-栈-代码区-全局静态-常量数据。同一区域的各变量按声明的顺序在内存的中依次由低到高分配空间(只有未赋值的全局变量是个例外)。本文是本站小编搜索整理的关于C/C++变量在内存中的分布介绍,感兴趣的朋友一起学习吧!!想了解更多相关信息...