首页 新闻 会员 周边 捐助

设有n个人站成一排,从左往右的编号为别为1~n,现在从左往右报数“1,2,1,2,.......",数到"1”的人人出列

0
[待解决问题]

求大神帮忙看看,这程序要怎么改
#include<stdio.h>
#include <list>
#include<malloc.h>

//#define MaxSize 100

typedef int ElemType;

typedef struct qnode
{
ElemType data[100];
struct qnode * next;
}QNode;

typedef struct
{
QNode * front;
QNode * rear;
}SqQueue;

void InitQueue(SqQueue *&q)
{
q=(SqQueue *)malloc(sizeof(SqQueue));
q->front=q->rear=NULL;
}

void number(int n)
{
int i;
ElemType e;
SqQueue q;
q.front=q.rear=0;
for(i=1;i<=n;i++)
{
q.rear=(q.rear+1)%MaxSize;
q.data[q.rear]=i;
}
printf("报数出列顺序:");
while(q.front!=q.rear)
{
q.front=(q.front+1)%MaxSize;
e=q.data[q.front];
printf("%d",e);
if(q.front!=q.rear)
{
q.front=(q.front+1)%MaxSize;
e=q.data[q.front];
q.rear=(q.rear+1)%MaxSize;
q.data[q.rear]=e;
}
}
printf("\n");
}

void main()
{
int i,n=8;
printf("初始序列:");
for(i=1;i<n;i++)
printf("%d",i);
printf("\n");
number(n);
}

力拓大神的主页 力拓大神 | 菜鸟二级 | 园豆:206
提问于:2014-03-19 17:31
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册