SWUST OJ 1027: 舞伴问题

题目描述

假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队。跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴。若两队初始人数不相同,则较长的那一队中未配对者等待下一轮舞曲。要求编写程序实现舞伴问题。

输入

输入一共5行,第一行是男生人数m;第二行依次是男生的姓名;第三行是女士的人数n;第四行依次是女士的姓名;第五行是跳舞的轮数。

输出

配对的男士和女士的姓名。

样例输入

5
A B C D E
3
F G H
2

样例输出

B G

参考程序

#include<stdio.h>
#include<stdlib.h>
typedef struct LNode
{
	char name;
	struct LNode *next;
}LinkNode;

void Creat(LinkNode *&L, char a[], int n)
{
	//β²å·¨ 
	LinkNode *s, *r;
	L=(LinkNode *) malloc (sizeof(LinkNode));
	r=L;
	for(int i=0; i<n; i++)
	{
		s = (LinkNode *) malloc (sizeof(LinkNode));
		s->name = a[i];
		r->next = s;
		r=s;
	}
	r->next = L->next;
}
void print(LinkNode *M, LinkNode *N, int k)
{
	LinkNode *p, *q;
	p=M;	q=N;
	while(k)
	{
		p=p->next;
		q=q->next;
		k--;
	}
	printf("%c %c", p->name, q->name);
}
int main()
{
	int m, n, k;
	LinkNode *M, *N;
	scanf("%d", &m);
	char b[m];
	for(int i=0; i<m; i++)
		scanf(" %c", &b[i]); 
	Creat(M, b, m);
	
	scanf("%d", &n);
	char c[51];
	for(int i=0; i<n; i++)
		scanf(" %c", &c[i]); 
	Creat(N, c, n);
	scanf("%d", &k);
	
	print(M, N, k);
}

注意

该程序仅供学习参考!

上一篇:使用python爬取财经网站数据接口


下一篇:魔王语言问题c语言实现及思路求解