试题 算法提高 扶老奶奶过街(C语言)

资源限制
时间限制:1.0s 内存限制:256.0MB
  一共有5个红领巾,编号分别为A、B、C、D、E,老奶奶被他们其中一个扶过了马路。

五个红领巾各自说话:

A :我和E都没有扶老奶奶

B :老奶奶是被C和E其中一个扶过大街的

C :老奶奶是被我和D其中一个扶过大街的

D :B和C都没有扶老奶奶过街

E :我没有扶老奶奶

已知五个红领巾中有且只有2个人说的是真话,请问是谁扶这老奶奶过了街?

若有多个答案,在一行中输出,编号之间用空格隔开。

例如
  A B C D E(这显然不是正确答案)

利用枚举法后如下:

#include<stdio.h>
int main()
{int A,B,C,D,E;       //分别表示A,B,C,D,E是否是好人,如果是,其值为1,否则为0。int a,b,c,d,e;       //分别表示A,B,C,D,E的话是否为真,如果是真,则为1,否则为0。char answer[6];for(A = 0;A <= 1;A++){for(B = 0;B <= 1;B++){for(C = 0;C <= 1;C++){for(D = 0;D <= 1;D++){for(E = 0;E <= 1;E++){a = !A && !E;b = (C + E == 1);c = (C + D == 1);d = !B && !C;e = !E;if(a+b+c+d+e==2 && A+B+C+D+E==1){if(A) printf("A");else if(B) printf("B");else if(C) printf("C");else if(D) printf("D");else printf("E");}}}}}}printf("\n");return 0;
}

但是答案虽然是正确的,但是放进去系统中没有按规定输出。

因此再利用数组把字母储存起来并且进行排序。

#include<stdio.h>
int main()
{int A,B,C,D,E;       //分别表示A,B,C,D,E是否是好人,如果是,其值为1,否则为0。int a,b,c,d,e;       //分别表示A,B,C,D,E的话是否为真,如果是真,则为1,否则为0。int i = 0,n = 0,j = 0;char temp = 0;char answer[6];for(A = 0;A <= 1;A++){for(B = 0;B <= 1;B++){for(C = 0;C <= 1;C++){for(D = 0;D <= 1;D++){for(E = 0;E <= 1;E++){a = !A && !E;b = (C + E == 1);c = (C + D == 1);d = !B && !C;e = !E;if(a+b+c+d+e==2 && A+B+C+D+E==1){if(A){answer[i] = 'A';i++;n++;}else if(B){answer[i] = 'B';i++;n++;}else if(C){answer[i] = 'C';i++;n++;}else if(D){answer[i] = 'D';i++;n++;}else{answer[i] = 'E';i++;n++;}}}}}}}for(i = 0;i < n;i++){for(j = 0;j < n;j++){if(answer[i] < answer[j]){temp = answer[i];answer[i] = answer[j];answer[j] = temp;}}}for(i = 0;i < n;i++){printf("%c",answer[i]);printf(" ");}printf("\n");return 0;
}

现在就能拿到满分啦。答案输出也满足规定。

小白一个,有什么可以更简便的地方可以指出ya

蓝桥杯试题 算法提高 扶老奶奶过街(C语言)相关推荐

  1. 蓝桥杯 ADV-143算法提高 扶老奶奶过街

    一共有5个红领巾,编号分别为A.B.C.D.E,老奶奶被他们其中一个扶过了马路. 五个红领巾各自说话: A :我和E都没有扶老奶奶 B :老奶奶是被C和E其中一个扶过大街的 C :老奶奶是被我和D其中 ...

  2. Java实现 蓝桥杯 算法提高 扶老奶奶过街

    1 问题描述 一共有5个红领巾,编号分别为A.B.C.D.E,老奶奶被他们其中一个扶过了马路. 五个红领巾各自说话: A :我和E都没有扶老奶奶 B :老奶奶是被C和E其中一个扶过大街的 C :老奶奶 ...

  3. 蓝桥杯 试题 算法提高 P0402 猴子吃桃问题 Java

    试题 算法提高 P0402 资源限制 时间限制:1.0s   内存限制:256.0MB 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个.第二天早上又将剩下的桃子吃掉一半,又多吃了一个. ...

  4. 蓝桥杯试题 算法提高 转圈游戏 C/C++

    试题 算法提高 转圈游戏 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏.按照顺时针方向给 n 个位置编号,从0 到 n-1.最 ...

  5. [蓝桥] 算法提高 扶老奶奶过街

    时间限制:1.0s   内存限制:256.0MB 一共有5个红领巾,编号分别为A.B.C.D.E,老奶奶被他们其中一个扶过了马路. 五个红领巾各自说话: A :我和E都没有扶老奶奶 B :老奶奶是被C ...

  6. 蓝桥杯 试题 算法提高 阴谋(C++)

    阴谋 题目浏览 算法代码 核心思路 题目浏览 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 第四次圣杯战争开始了. 为了收集敌人的情报,言峰绮礼命令他的使魔Assassin将自己的 ...

  7. 蓝桥杯试题 算法提高 数组求和

    题干 我人比较蠢想不出好的解决方案,只能采用暴力破解才能维持的了生活这样.. 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 输入n个数,围成一圈,求连续m(m<n)个数的和最 ...

  8. 蓝桥杯试题 算法提高 Cutting Chains

    资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 什么!Anna Locke最近买了几个链环,并且其中的一些链环连接到了一起.它们是由zorkium做成的,这是一种在上世纪经常用来加工 ...

  9. 蓝桥杯试题 算法提高 Monday-Saturday质因子

    资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 这个问题是个简单的与数论有关的题目,看起来似乎是"求正整数的所有质因子",但实际上并不完全是这样. 本题中需要定义 ...

最新文章

  1. 5G空口存疑 革新还是4G演进?
  2. C语言课程设计—图书管理系统
  3. 结课作业:云计算在物联网中的应用发展
  4. YTKNetwork使用application json方式传递参数
  5. 开学考试学生成绩管理Java
  6. LeetCode-动态规划基础题-509. 斐波那契数
  7. php 获取用户名,PHP如何获取当前windows系统的登录用户名
  8. 【ARM】Tiny4412裸板编程之MMU(段 16M)
  9. Angular compiler报的一个错误消息:Component XX is not part of any NgModule
  10. 火炬之光2找不到服务器,火炬之光2无法运行解决办法详细介绍
  11. 我心中的ASP.NET Core 新核心对象WebHost(二)
  12. 拖拽功能-jquery
  13. python股票网格交易法详解_干货 | 浅谈网格交易法
  14. LeetCode算法入门- Longest Common Prefix -day13
  15. linux磁盘iops限制,linux – 我需要多少IOPS?我的工作量瓶颈是存储
  16. aGlass学习笔记 1
  17. 593. 有效的正方形
  18. power automate desktop获取股票网页数据
  19. idea上git提交代码的正确步骤
  20. 推荐三十款最好的免费项目管理软件

热门文章

  1. matlab中nargin函数的用法
  2. strcmp函数的说明和使用
  3. pyqt 服务器mysql_PyQt5 中调用MySql接口失败 ( QSqlDatabase 组件) 在Linux环境下如何修改...
  4. 06电容阻抗-频率特性曲线
  5. 如何理解向量组的秩和矩阵的秩
  6. 通过rvm 安装 ruby
  7. php实现ckeditor编辑器添加水印及使用误区
  8. linux怎么查看当前系统版本号,Linux下怎么查看当前系统的版本
  9. 第二十三篇-ubuntu18.04怎么下载播放器以及如何设置默认播放器
  10. 【Vue基础】关于Vue中CSS的scoped属性作用域与样式穿透