逛贴吧偶遇一道很新颖的C语言编程题,想到自己的C语言荒废了很久,便决定花点时间解决一下练练手。
具体题目如下:
实验题目(4)【见实验教材实验五的题目6】:编写程序exp5_6.c,请判断花瓶是谁打碎的。教师花瓶碎了,班级只有四个小同学,老师询问小同学,已知是其中1人打碎的,还知道4人中每个人要么是诚实的,要么总是说谎的。
小同学回答老师的问题是:
甲说:“乙没有打碎,是丁打碎的。”
乙说:“我没有打碎,是丙打碎的。”
丙说:“甲没有打碎,是乙打碎的。”
丁说:“我没有打碎。”
根据四人回答判断谁打碎了花瓶。
**什么?书??我没有书啊?**硬着头皮写吧
#include<stdio.h>
int a[4]={0,0,0,0};//数组a用来表示甲乙丙丁四个人的标志,若为1则表示是他打碎了花瓶
int b[4]={0,0,0,0};//数组b用来表示甲乙丙丁四个人陈述的命题的真否,1表示否命题
int check(int t[4])
{
//判断甲所陈述的命题
int flag=1; //FLAG标志判断是否运行以下程序
if(t[0]==1) //甲说谎
{
if(t[1]==1&&t[3]==0) //若甲说谎则乙说的是真话且丁说谎;以下同理
{
a[1]=1;
a[3]=0;
flag=0;
}
}
else{
if(t[2]==1&&t[3]==1)
{
a