非诚勿扰征婚匹配问题
题目
三位先生和三位女士参加“征婚”栏目,分别写下了自己喜欢的对象,需要设计一个计算机程序找出成功的匹配。限制条件是:每位先生喜欢并且仅仅喜欢一位女士,而每一位女士也喜欢并且仅仅喜欢一位先生。匹配条件是:先生(或女士)所喜欢的人恰好也喜欢自己,则匹配成功,否则匹配不成功。结果要求打印出幸运的先生(或女士)
代码实现
#include<stdio.h>
//征婚匹配问题
//男 a,b,c
//女 x,y,z
char x, y, z;//三位女生
void assp(char **p, char pref)//char **p是为了改变传过来的地址值 pref是为了判断地址应该指向哪里
//这个函数的作用是找到男生喜欢的女生是喜欢谁的
{
switch (pref)
{
case 'x': *p = &x; break;
case 'y': *p = &y; break;
case 'z': *p = &z; break;
}
}
int main()
{
char a, b, c;//三位男生
printf("请输入三个男生心仪女生:");
scanf("%c%c%c", &a, &b, &c);//男生输入自己喜欢的女生
getchar();//吸收缓冲区的'\n'
char *pa = &a, *pb = &b, *pc = &c;
printf("请输入三个女生心仪的男生:");
scanf("%c%c%c", &x, &y, &z);//女生输入自己喜欢的男生
assp(&pa, a);
assp(&pb, b);
assp(&pc, c);
//判断男女是否是互相喜欢
if (*pa == 'a')
{
printf("A先生是幸运的\n");
}
if (*pb == 'b')
{
printf("B先生是幸运的\n");
}
if (*pc == 'c')
{
printf("C先生是幸运的\n");
}
return 0;
}