第一章-实例8-婚礼上的谎言问题

问题描述:三对新人参加婚礼,三位新郎A,B,C,三位新娘X,Y,Z。有人想知道谁与谁结婚,于是就问他们:A说他将和X结婚;X说她的未婚夫是C;C说他将和Z结婚。他们都在说谎。编程求谁与谁结婚。

算法思想:构建逻辑表达式 (a!=1 && c!=1 && c!=3 && a!=b && b!=c && a!=c)

注意字符输出

自己的算法有一点点问题,不会输出字符

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a,b,c;
    for(a=1;a<=3;a++)
        for(b=1;b<=3;b++)
            for(c=1;c<=3;c++)
          {
                if(a!=1 && c!=1 && c!=3 && a!=b && b!=c && a!=c)
                {
                    printf("A与%d结婚\n",a);
                    printf("B与%d结婚\n",b);
                    printf("C与%d结婚\n",c);
                }
          }
    return 0;
}

输出结果为:

标准答案可以输出字符:

#include<stdio.h>
#include <stdlib.h>
int main()
{
    int a,b,c;                  //a,b,c为三个男人
    for(a=1;a<=3;a++)           //给a,即第一个男人尝试匹配给每一个女人
        for(b=1;b<=3;b++)       //给a,即第一个男人尝试匹配给每一个女人
            for(c=1;c<=3;c++)   //给a,即第一个男人尝试匹配给每一个女人
                if(a!=1 && c!=3 && c!=1 && a!=b && b!=c && a!=c)    //根据他们说的话进行判断
                {
                    //符合条件,即正确的情况下,输出正确答案
                    printf("%c将嫁给A\n",'X'+a-1);
                    printf("%c将嫁给B\n",'X'+b-1);
                    printf("%c将嫁给C\n",'X'+c-1);
                    printf("\n");
                    printf("%d将嫁给A\n",a);
                    printf("%d将嫁给B\n",b);
                    printf("%d将嫁给C\n",c);
                }
                //程序计算结束。退出程序
                system("pause");
                return 0;
}

结果为:

原文地址:https://www.cnblogs.com/FangXu1998/p/12151479.html

时间: 2024-10-25 11:53:23

第一章-实例8-婚礼上的谎言问题的相关文章

Java循环练习:婚礼上的谎言

package practiceGO; /**  * 婚礼上的谎言          三个新郎为A.B.C,三个新娘为X.Y.Z.          有人想知道究竟谁和谁结婚,          于是就问新人中的三位,得到如下提示:    A说他将和X结婚:    X说她的未婚夫是C,    C说他将和Z结婚.          这个人事后知道他们在开玩笑,全是假话,           那么,究竟谁与谁结婚呢?    */ public class Cto { public static vo

婚礼上的谎言(C++实现)

#include<iostream> using namespace std; void main(void) { int a,b,c; char DD,EE,FF; for (a=1;a<=3;a++) for (b=1;b<=3;b++) for (c=1;c<=3;c++) if (a!=1&&c!=1&&c!=3&&a!=b&&b!=c&&a!=c) { //printf(a); DD='

第一章实例

制作一个jsp包含一个html内显示oracle图标的例子: index.jsp: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.get

第一章-实例7-猴子吃桃问题

一群猴子摘了一堆桃子,它们每天都吃当前桃子的一半且多吃一个,到了第10天就只剩下一个桃子.求原来有多少个 个人感觉自己的做法比较好 自己的做法: //一群猴子摘了一堆桃子,它们每天都吃当前桃子的一半且多吃一个,到了第10天就只剩下一个桃子.求原来有多少个桃子 #include <stdio.h> #include <stdlib.h> int main() { int count=0; int sum=0; int b=0; printf("请输入原来有多少个桃子:\n&

第一章 Android系统的编译和移植实例

第一章 Android系统的编译和移植实例 这一章节主要介绍了Android系统的编译和移植技术,作为建立在Linux内核的基础上的Android操作系统,它的编译和移植不论在过程还是技术方面都和嵌入式Linux非常相似. 首先要准备一套可以正常运行Linux系统的一套开发版,需要在其移植Android系统,并能够正常运行. 移植的主要过程为: 1.下载Android Linux 内核 2.安装交叉工具链 3.移植Android Linux 内核支持的平台 4.安装Android SDK 5.获

学习第一章 Android系统的编译和移植实例后的心得体会

说起来,去年在岳老师的带领下就接触了嵌入式系统的编译和移植.而现在我们又开始接触Android系统的编译和移植.第一章主要介绍安卓系统的编译和移植技术.其实安卓和嵌入式非常相似. 安卓 移植涉及的主要过程大致分为六步:1.下载安卓linux内核. 2.安装交叉工具链.3.移植安卓linux内核支持EZ6410平台.4.安装安卓SDK.4.获得安卓根文件系统.5.设置系统环境,完成安卓正常启动.虽然步骤不多,但是涉及了很多东西.在开始内核移植之前,先完成工具链的搭建.在移植过程中会发现硬件差异.差

通过游戏学python 3.6 第一季 第九章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁定账号--锁定次数--菜单功能&#39;menufile

通过游戏学python 3.6 第一季 第九章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁定账号--锁定次数--菜单功能'menufile 1 #猜数字--核心代码--猜测次数--随机函数和屏蔽错误代码---优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁定账号--锁定次数--菜单功能'menufile' 2 #!usr/bin/env python 3 #-*-c

(linux shell)第一章--小试牛刀(上)

来源:(linux shell)第一章--小试牛刀(上) 从今天开始,我们一起来学习<linux shell脚本攻略>这本书. 1.1简介 shell脚本通常是一个以#!起始的文本文件,如下所示: #!/bin/bash 有两种执行shell脚本的方式,分别如下: sh script.sh 或者./script.sh 但是在执行脚本以前,我们需要给脚本执行权限才行,不然脚本无法执行 chmod a+x script.sh 在命令中行中,如果需要同时执行多个命令,可以使用 cmd1;cmd2 1

第一章:Android系统的编译和移植实例读书笔记

通过第一章的学习初步了解和认识了什么是Android系统移植和驱动开发,移植的背景与目标,设计的主要过程,以及安装交叉工具链等等. Android系统架构第一层:Linux内核,这一层主要包括Linux的驱动程序以及内存管理,进程管理,电源管理等程序:第二层:C/C++代码库,其中包括了HAL也是普通的Linux程序库(.so文件)其目的是使Android SDK通过HAL直接访问Linux驱动:第三层:Android SDK API,实际上就是用Java编写的各种library:第四层:应用程