C语言 约瑟夫环问题:用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出.高手帮看看我编的有问题没.最后释放那对吗?在网上看了好些关于这个问题的程序,代码都比较

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 06:57:10

C语言 约瑟夫环问题:用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出.高手帮看看我编的有问题没.最后释放那对吗?在网上看了好些关于这个问题的程序,代码都比较
C语言 约瑟夫环问题:用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出.
高手帮看看我编的有问题没.最后释放那对吗?在网上看了好些关于这个问题的程序,代码都比较长.(一开始想用数组编,后来发现用数组的话不能定义变长度的数组,有什么方法可以解决.)
#include
#include
struct number
{
\x05int num;
\x05struct number * next;
};
void main ()
{
\x05int m,n;
\x05struct number * p,* head=NULL,* tail;
\x05printf("please input M and N:\n");
\x05scanf("%d %d",&m,&n);\x05\x05 //输入M、N值.
\x05for (int i=1; inum=i;
\x05\x05if(head==NULL)
\x05\x05\x05head=p;
\x05\x05else
\x05\x05\x05tail->next=p;
\x05\x05tail=p;
\x05}
\x05tail->next=head;
\x05
\x05for(i=1; inum = 0)
\x05\x05\x05\x05j++;\x05\x05\x05
\x05\x05}
\x05\x05printf("%d ",p->num);
\x05\x05p->num = 0; //将值输出后置0,下次数数跳过.
\x05}
\x05printf("\n");
\x05p=head; //释放所有节点.
\x05for(i=1; inext;
\x05}
}
最后应该是
//释放所有节点.
\x05for(i=1; inext;
\x05\x05free(p);
\x05}

C语言 约瑟夫环问题:用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出.高手帮看看我编的有问题没.最后释放那对吗?在网上看了好些关于这个问题的程序,代码都比较
帮你改了程序
#include
#include
struct number
{
\x09int num;
\x09struct number * next;
};
void main ()
{
\x09int m, n;
\x09struct number * p, * head=NULL, * tail;
\x09printf("please input M and N:\n");
\x09scanf("%d %d", &m, &n);\x09\x09 //输入M、N值.
\x09for (int i=1; inum=i;
\x09\x09if(head==NULL){
\x09\x09\x09head=p;
tail=p;//注意开始tail也要赋值
}
\x09\x09else
\x09\x09\x09tail->next=p;
\x09\x09tail=p;
\x09}
\x09tail->next=head;
\x09p = tail; //从head开始,记录开始的前一个指针
\x09while(n--) //剩下的数的个数为n\x09\x09\x09\x09\x09
\x09{ int t = m%n; //防止多数太多圈造成时间浪费
\x09\x09for(int j=1; jnext;
number *q = p->next; //要删的数的指针
\x09\x09printf("%d ", q->num); //输出要删的数
\x09\x09p->next = q->next; //要删的数从链表中去掉
free(q);
\x09}
\x09printf("\n");
}

C语言 约瑟夫环问题:用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出.高手帮看看我编的有问题没.最后释放那对吗?在网上看了好些关于这个问题的程序,代码都比较 josephus problem 约瑟夫环 C语言围成一个环输入总人数n,报到m死,接着报数,输出最后剩下人的序号 约瑟夫环问题,用C语言写要有注释, 急求 约瑟夫C语言的问题 C语言编程计算1!+2!+3!+…+n!.n由用户决定程序中应有防止用户输入n值超过100的措施. 用数据结构的单循环链表写的约瑟夫环(C语言),哪错了?约瑟夫环 问题描述:约瑟夫问题的一种描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持一个密码(正整数).一开始任选 求做一个C语言题目约瑟夫问题.M个人围成一个圈,从第一个人开始报数,数到N的人出圈,再由下一个人开始报数,数到N的人出圈,输出依次出圈人的编号.M,N值由键盘输入.例如:M=8,N=5则依次出圈的 约瑟夫环问题,用C语言编写设N个人围坐一圈,并按顺时针方向1-N编号,从s个人开始报数,报到第m个人,此人出圈,后面的人继续从1到m报数,直到最后一个人, C语言求解不等式已知不等式 +2!+3!+...+m!‹n,请编程对用户指定的n值计算并输出满足该不等式的m的整数解.输入输入一个正整数n,n不大于1000000.输出输出m的取值范围,具体格式见输出样例.样 约瑟夫环问题(C语言)编序为1,2,...n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数),一开始人选一个整数作为报数上限m,从第一个人开始按顺时针方向从自1开始顺序报数,报 C语言:输入m,求n.使n! C语言平均值问题输入M的值,再输入M个数,求M个数的平均值 用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出.写出C程序 C语言:输入两个正整数 m 和 n(6 C语言打印下列图形~输入一个数据n,由该数据决定其三角形的行数,输出其三角形的图形,*之间的间隔数也由用户输入m决定例如:输入一个n=2,m=0,则三角形为:****输入一个n=3,m=1.则三角形为:** 求C语言实现约瑟夫环!1.编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人持有一个密码(正整数).一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报 C语言素数程序问题输入每行输入一个整数N(N 求数据结构算法!急用!1、 约瑟夫环问题约瑟夫问题的描述是:编号为 1,2,----,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数).一开始人选一个正整数作为报数上限值m,从第一个