一对知名舞伴
1. 课程设计题目1:舞伴配对模拟
具体算法及相关的类型定义
typedef struct{
char name[20];
char sex; //性别,'F'表示女性,'M'表示男性
}Person;
typedef Person DataType; //将队列中元素的数据类型改为Person
void DancePartner(Person dancer[],int num)
{//结构数组dancer中存放跳舞的男女,num是跳舞的人数。
int i;
Person p;
CirQueue Mdancers,Fdancers;
InitQueue(&Mdancers);//男士队列初始化
InitQueue(&Fdancers);//女士队列初始化
for(i=0;i<num;i++){//依次将跳舞者依其性别入队
p=dancer[i];
if(p.sex=='F')
EnQueue(&Fdancers.p); //排入女队
else
EnQueue(&Mdancers.p); //排入男队
}
printf("The dancing partners are: \n \n");
while(!QueueEmpty(&Fdancers)&&!QueueEmpty(&Mdancers)){
//依次输入男女舞伴名
p=DeQueue(&Fdancers); //女士出队
printf("%s ",p.name);//打印出队女士名
p=DeQueue(&Mdancers); //男士出队
printf("%s\n",p.name); //打印出队男士名
}
if(!QueueEmpty(&Fdancers)){ //输出女士剩余人数及队头女士的名字
printf("\n There are %d women waitin for the next round.\n",Fdancers.count);
p=QueueFront(&Fdancers); //取队头
printf("%s will be the first to get a partner. \n",p.name);
}else
if(!QueueEmpty(&Mdancers)){//输出男队剩余人数及队头者名字
printf("\n There are%d men waiting for the next round.\n",Mdacers.count);
p=QueueFront(&Mdancers);
printf("%s will be the first to get a partner.\n",p.name);
}
}//DancerPartners
参考程序如下,供大家阅读:
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#define MaxNumber 100
typedef struct{
char name[20];
char sex[4]; /*性别,‘F’表示女性,‘M’表示男性*/
}Person;
/* 将队列中元素的数据类型改为Person*/
typedef struct
{ Person data[MaxNumber];
int front;
int rear;
}CirQueue;
CirQueue *InitQueue()
{ CirQueue *q;
q=(CirQueue*)malloc(sizeof(CirQueue));
q-> front=q-> rear=0;
return q;
}
int QueueEmpty(CirQueue *q)
{ return(q-> front==q-> rear);
}
int EnQueue(CirQueue *q,Person x)
{ if((q-> rear+1)%MaxNumber==q-> front)
{ printf( "\nOverflow !\n ");
return 0;
}
q-> data[q-> rear]=x;
q-> rear=(q-> rear+1)%MaxNumber;
return 1;
}
Person DeQueue(CirQueue *q)
{ Person x;
if(q-> front==q-> rear)
{ printf( "\nThe queue is empty ! Can 't delete !\n ");
return ;
}
x=q-> data[q-> front];
q-> front=(q-> front+1)%MaxNumber;
return x;
}
void DancePartner(Person dancer[],int num)
{ /*结构数组dancer中存放跳舞的男女,num是跳舞的人数*/
CirQueue *Mdancers,*Fdancers;
int i, count=0;
Person p;
Mdancers=InitQueue(); /*男士队列初始化*/
Fdancers=InitQueue(); /*女士队列初始化*/
for(i=0;i <num;i++) /*依次将跳舞者依其性别入队*/
{
p=dancer[i];
if(strcmp(p.sex, "f ")==0)
EnQueue(Fdancers,p); /*排入女队*/
else EnQueue(Mdancers,p); /*排入男队*/
}
printf( "\nThe dancing partners are:\n ");
while(!QueueEmpty(Fdancers)&&!QueueEmpty(Mdancers))
{ /*依次输入男女舞伴名*/
count++;
p=DeQueue(Fdancers); /*女士出队*/
printf( "%s\t ",p.name); /*打印出队女士名*/
p=DeQueue(Mdancers); /*男士出队*/
printf( "%s\n ",p.name); /*打印出队男士名*/
}
if(!QueueEmpty(Fdancers)) /*输出女士剩余人数及队头女士的名字*/
{
printf( "\n There are %d women waiting for the next round.\n
",num-2*count);
p=DeQueue(Fdancers);
printf( "%s will be the first to get a partner. \n ",p.name);
printf( "\n ");
}
if(!QueueEmpty(Mdancers)) /*输出男队剩余人数及队头者名字*/
{
printf( "\n There are %d men waiting for the next round.\n
",num-2*count);
p=DeQueue(Mdancers);
printf( "%s will be the first to get a partner. \n ",p.name);
printf( "\n ");
}
}
int GetDancersInfo(Person dancer[])
{ int count=0;
Person p;
while (1)
{ printf( "Input the sex:\n ");
scanf( "%s ",p.sex);
if(strcmp(p.sex, "0 ")==0) break;
printf( "Input the name:\n ");
scanf( "%s ",p.name);
dancer[count]=p;
count++;
}
return count;
}
void main()
{ int DancersNum;
Person Dancers[MaxNumber];
DancersNum=GetDancersInfo(Dancers);
if(DancersNum!=0) DancePartner(Dancers,DancersNum);
getch();
}
2. 找一部本·斯蒂勒拍的电影,其中有个片段是他在一个宴会上跳舞,舞伴是个大胖子女人,他们和另外一对男女
糊涂侦探GetSmart(2008)
导演:彼得·西格尔
编剧:汤姆·J·阿瑟尔/马特·恩贝尔/梅尔·布鲁克斯专/巴可·亨利
主演:史蒂夫·卡瑞尔属/安妮·海瑟薇/道恩·强森/艾伦·阿金/特伦斯·斯坦普
类型:喜剧/动作/冒险
制片国家/地区:美国
语言:英语/俄语
上映日期:2008-06-20(美国)
片长:110分钟
又名:特务行不行/特务S唛
你记错了,是史蒂夫·卡瑞尔。
3. 我的舞伴又找了一个男舞伴,她已婚,与我发生了关系,现在不理我了,我想把她删掉,我做的对吗
这样的人还留着跟自己添堵啊!速度删掉
4. 小郑家楼上有一对舞迷夫妇每天晚上都邀请舞伴跳舞到深夜更令�
他可以向楼上的人提意见啊 或者找居委会啊 有木有啊
5. 我的女朋友有一个跳舞的师傅 比她大十岁并且对她有意思 我让她换舞伴不联系以分手相要挟 她也不肯
零散说几句话,我会说得直接严厉点,你选有用的听。
1、你去管教她,你去挽回她,结果是你们要分手,你们每天都没意思,那证明你这个所谓的干涉挽回,实际效果是把你女友推得越来越远的!那你还不赶紧暂停你的方式?——这个从结果来推导你的行为的对错,也就是说,哪怕你不清楚不接受这个逻辑,不明白为什么自己的女朋友不能干涉,你去做就行了,好吗?否则等你想通了,你女友早没了,而且是被你自己弄没的。
2、我们经常有个思维:“我重要还是他重要?”你当然更重要啊!然后呢?你更重要就代表了其他的第二重要的就是废物吗?就要扔掉吗?所以那句话问起来非常有底气,但其实隐含的意思是非常过分的。对她来说,你第一重要,跳舞第二重要,师傅第三重要,有问题吗?她的人生其他都不要了只能留下一个最重要的东西吗?这个本来就是无脑的逻辑。
你女友问你她是不是你最重要的,然后让你把房子烧了,把父母断绝关系了,你做不做?你不做他说你没把她当最重要的,你做了……你会觉得你干嘛要做,她神经病吧,她最重要跟其他房子父母这些第二重要的、或者其他方面最重要的人和事,有屁关系啊?
3、关于你女友现在有没有出轨,哪怕现在没出轨但以后会不会出轨,这是你最关心的问题。我们来分析下。首先,你女友现在是没问题的,哪怕和师傅非常有好感,非常默契,非常有暧昧发展的基础,但现阶段,她还是没问题的,所以你的提前预防,在她那里就是无端污蔑、侮辱、干涉自由。你觉得你防范于未然是理性的,她觉得你吃饱了没事干找茬吵架。能怪她吗?不能!因为她现在就是没问题的,反而是你不断地侮辱她。
那怎么办呢?难道眼睁睁看着他们暧昧发展吗?你所有的愤怒与干涉,都是基于这个想法来的。我现在告诉你,你最有力的挽回手段和干涉他们发展的手段,就是让你自己变得更好,让你自己对她更好!他们先认识都没在一起,说明他们也不是天生一对的,但是你现在龇牙咧嘴的丑恶形象,只会让你女友对比一看,觉得自己当时真是瞎了眼,明明师傅这么完美的男人,自己怎么就没发现呢!我知道在你心里不爽、你女友“不自尊自爱”的情况下,让你先低头去讨好她,对她更好,你可能心里过不了关,觉得侮辱了你男人的自尊,其实不是的,因为你女友现在还是好的,只是她把握不了感情的变化,她不知道她以后可能慢慢就变心了,所以需要你这个聪明人来引导,如果你这个聪明人就是简单粗暴去责骂,那谁也不是你的奴隶,干嘛要听你的。
4、最坏最坏的情况,他们就是要在一起,要背叛你,那你都努力过后了,你都对她好了,说明不是你的问题,那样还会失去她的话,证明了就是她人渣啊,你完全不会心痛或者对爱情产生阴影,包管你会一身轻松,以一个更好的男人的形象去开始新的生活。她如果就是要背叛你,那你去挽回她,不是挽回一个人渣吗?打算结婚了养别人的孩子吗?所以,你现在不要去担心他们怎么发展,你该警告的都警告过了,接下来要做的,就是比那个师傅对她更好,就可以了。
5、如果你真的很爱很爱她,那么,你应该知道恋爱是自由的,她不是你的,不是你的私人物品。哪怕她要分手,也是有权利的。换个角度来看,你原本就没有她的,你从零开始慢慢拥有她的,如果以后分手,你们归零,那么现在你拥有她,是最美好的时期啊。你不要一直抱着这样的心态,她就是你的,她就是你一个人的,所以她稍微分一点注意力到其他人身上,你就觉得是你身上的肉被人挖了,须知,如果她不认可你,那你是没资格影响她一分一毫的。这就是事实,事实就是你可能对她没有一点权力,而不是你以为的你对她有百分百的权利。
总结:想走的留不住,勉强的问题更多,做好你自己,思维变一变。
6. 一对舞伴跳舞因一方有病到至死亡另一方有责任吗
这个的话应该是没有责任的。
但是道德上很容易受到谴责。很容易自己良心过不去。
7. 一个男人对她的舞伴说,“你以后与别人跳舞不与我跳舞我们见面是陌路人,我不会再理你了。“说这话的男人
他喜欢他舞伴啊
8. 利用循环队列模拟舞伴配对问题:在舞会上,男、女各自排成一队。舞会开始时。依次从男队和女队的队头各出
理工软件的啊?
我倒是做出来了,给你个~
#include<stdio.h>
#define queuesize 100
typedef struct //定义结构体
{
char name[20];
char sex;
} datatype;
typedef struct //定义结构体队列
{
int front;
int rear;
int count;
datatype dancers[queuesize];
} cirqueue;
void initqueue(cirqueue *q)//建立空队列//
{
q->front=q->rear=NULL;
q->count=0;
}
int queueempty(cirqueue *q)//判断队列是否为空,为空返回1,否则返回0//
{
return q->count==NULL;
}
void enqueue(cirqueue *q,datatype p)//进队函数,使p进入队列//
{
q->count++;
q->dancers[q->rear]=p;
q->rear=(q->rear+1)%queuesize;
}
datatype dequeue(cirqueue *q)//出队函数,用p返回出队值//
{
datatype p;
while(!queueempty(q))
{
p=q->dancers[q->front];
q->count--;
q->front=(q->front++)%queuesize;
return p;
}
}
datatype queuefront(cirqueue *q)//访问队头元素//
{
return q->dancers[q->front];
}
void dancepartners(datatype dancers[],int num)//舞伴配对函数//
{
int i;
datatype p;
cirqueue maledancer,femaledancer;//定义两个循环队列结构体//
initqueue(&maledancer);//调用initqueue()函数置空队列maledancer//
initqueue(&femaledancer);//调用initqueue()函数置空队列femaledancer//
for(i=0;i<num;i++)
{
p=dancers[i];//结构体整体赋值//
if(p.sex=='f')//女的进队列femaledancer//
{
enqueue(&femaledancer,p);
printf("%s进女队\n",p.name);
}
else//男的进队列maledancer//
{
enqueue(&maledancer,p);
printf("%s进男队\n",p.name);
}
}
printf("配对情况如下:\n");
while (!queueempty(&femaledancer)&&!queueempty(&maledancer))//当两个队列都不为空时,出队配对//
{
p=dequeue(&maledancer);
printf("男:%s",p.name);
p=dequeue(&femaledancer);
printf("和女:%s配对成功\n",p.name);
}
if(!queueempty(&femaledancer))//女队不为空,输出女队第一个等待人姓名//
{
printf("女队中还有%d个人在等待!\n",femaledancer.count);
p=queuefront(&femaledancer);
printf("女队中第一个等待的是:%s\n",p.name);
}
else if(!queueempty(&maledancer))//男队不为空,输出男队第一个等待人姓名//
{
printf("男队中还有%d个人在等待!\n",maledancer.count);
p=queuefront(&maledancer);
printf("男队中第一个等待的是:%s\n",p.name);
}
else printf("没有人剩余!\n");
}
void main()
{
datatype p,dancers[queuesize];
int i,num;
printf("输入男女dancer的总人数:\n");
scanf("%d",&num);
printf("输入姓名和性别,如: \nzhangsan\nm\n");
for(i=0;i<num;i++)
{
scanf("%s",&dancers[i].name);
getchar();
scanf("%c",&dancers[i].sex);
if(dancers[i].sex!='f'&&dancers[i].sex!='m')//判断输入信息是否合法//
printf("第%d个人的信息有误,请重新输入",i--);
}
dancepartners(&dancers[0],num);
getchar();
}
9. 假设有一对拉丁舞伴长期合作,女伴已婚,男伴未婚,如果男伴在已经知道对方已有家庭的情况下是否还会大胆
这个要看的问题就很多了,一种米养百种人你是知道的。这没人能回答,专他给你的感觉是属什么呢?跟着感觉走,要是我真的很喜欢这个伴但是对方有家庭了我还是不会去追求她的,默默保存在心里保持一定的距离,若是她离婚又另当别说
10. 舞厅内 只有n对夫妻,男女都任意选舞伴共舞,求至少有一对夫妻共舞的概率
如果你认可我的回答,敬请及时采纳,回到你的提问页,点击我的回答,在右上角点击“回评价”,答然后就可以选择“满意,问题已经完美解决”了。
如果有其他问题请采纳本题后,另外发并点击我的头像向我求助,答题不易,请谅解,谢谢。