标题:求指导 进出队列 跳舞问题
只看楼主
约束小朋友
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2013-5-28
结帖率:85.71%
已结贴  问题点数:20 回复次数:2 
求指导 进出队列 跳舞问题
1.男生和女生依次排队,排在对头的男生和排在对头的女生先配对,舞曲结束排到各自的队尾。因此该问题具体有典型的先进先出特性,可用队列作为数据的存储方式。
2.算法需要两个队列,分别是存放男生队列和女生队列,每跳一支舞曲则是一次男女队列的出队列和入队列。
3.初始化时男生、女生队列的值分别为他们的编号序列。
4.解决实验内容的问题,只需运用循环语句,执行K次入队出队即可,第K次出队列的数据对就是配对的情况。

以下是我自己写的程序
我编译 组建什么的 系统都说我没问题
但是当我输入Input count of girls:6
Input count of boys:9
Input the song number:20

输出就会变成FULL!
而且一直输出
我比对过书本 我子程序 是没问题的
但是就是不知道为什么会跟预期的结果不一样

我已经写了两个星期了 求高人指点

#include

struct node
{
  int elem[80];
  int front;
  int rear;
};
typedef struct node Queue;

Queue InitQ()
{
  Queue Q;
  Q.front=0;
  Q.rear=0;
  return(Q);
}

Queue InserQ(Queue Q,int x)
{
 if((Q.rear+1)%80!=Q.front)
 {
 Q.elem[Q.rear]=x;
 Q.rear=(Q.rear+1)%80;
 }
 else
 
printf("Full!");
 
return(Q);
}

Queue DeleteQ(Queue Q)
{
   if(Q.rear!=Q.front)
   {
    Q.front=(Q.front+1)%80;
   }
    else
   {
    printf("NULL!");
    }
   return(Q);
}

void main()
{
   Queue Q,Q2;
   int b,g,k,i,j,t,s;
   Q=Q2=InitQ();
   printf("Input count of girls:");
   scanf("%d",&g);
   printf("Input count of boys:");
   scanf("%d",&b);
   printf("Input the song number:");
   scanf("%d",&k);
   for(i=1;i<=b;i++)
   {
    Q=InserQ(Q,i);
   }
   for(j=1;j<=g;j++)
   {
      Q2=InserQ(Q2,j);
   }
   i=0;
   while(i!=k){
   t=Q.elem[Q.front];
   Q=DeleteQ(Q);
   Q=InserQ(Q,t);
   s=Q2.elem[Q2.front];
   Q2=DeleteQ(Q2);
   Q2=InserQ(Q2,s);
   i++;
   }
   printf("Result:This is %d's girl and %d's boy dance!",s,t);

}

[ 本帖最后由 约束小朋友 于 2013-10-30 18:49 编辑 ]
搜索更多相关主题的帖子: count 
2013-10-29 21:00
yhyoin
Rank: 2
等 级:论坛游民
帖 子:7
专家分:30
注 册:2013-10-22
得分:10 
可不可以认为你贴错地方了
2013-10-31 12:32
blueskiner
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:227
专家分:707
注 册:2008-9-22
得分:10 
完全可以认为是贴错地方了
2013-10-31 12:49



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-422725-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.485229 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved