注册 登录
编程论坛 Matlab

[求助]求助大哥!大姐!感激!

芷杉 发布于 2006-06-21 15:20, 820 次点击
编写程序:有N个人围成一圈,按顺序编号,从第一个人开始报数,数到m的时候退出,并且下一个人重新开始报数。求出圈人的顺序(或编号)。
要求:(1)编写成函数文件函数名自命
(2)要求N和m为输入参数,可以在调用函数时自由选择。输出参数为出圈人的顺序向量
6 回复
#2
芷杉2006-06-21 15:25

用matlab编写  哪位会遍,请发到我的邮箱:zhishan@163.com
不盛感激

#3
芷杉2006-06-22 14:43
怎么没人回答呢?
#4
Genial2006-06-22 16:15
作业要自己做
#5
abingchem2006-06-23 09:49
以下是引用Genial在2006-6-22 16:15:57的发言:
作业要自己做

#6
Genial2006-06-26 17:09
无聊中,有C语言写了个(matlab应该更加容易,但为了假装在工作--反正老板是是假装付给我工资的...)

#include "stdafx.h"
#include "stdio.h"
#include "string.h"
#include <malloc.h>

struct strque {
char a[5];
struct strque *pNext;
} ;

void main(void)
{

int i, m, n;
strque *p, *h, *s;

n = 10;
m = 8;

if((h = (strque *)malloc(sizeof(strque)))==NULL)
{
printf("不能分配内存空间!");
return;
}
strcpy(h->a, "1");
h->pNext = NULL;
p = h;

// 构建循环链表
for(i = 1; i<n; i++)
{
char str[5];
sprintf(str, "%-5d", i+1);
if((s = (strque *)malloc(sizeof(strque)))==NULL)
{
printf("不能分配内存空间!");
return;
}
p->pNext = s;
strcpy(s->a, str);
s->pNext = NULL;
p = s;
}
p->pNext = h;


s = h;
p = s->pNext;

char chars[5];
i = 1;
while(s->pNext != p->pNext)
{
i++;
if(i == m)
{
i = 1;
strcpy(chars, p->a);
printf("%s\n", chars);
s->pNext = p->pNext;
p = s->pNext;
}

s = s->pNext;
p = p->pNext;
}
strcpy(chars, p->a);
printf("%s\n", chars);
}

[此贴子已经被作者于2006-6-26 17:11:56编辑过]

#7
abingchem2006-06-26 21:02

慢慢看
1