5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果(使用函数)

本文主要是介绍5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果(使用函数),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目:5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果
A选手说:B第二,我第三;
B选手说:我第二,E第四;
C选手说:我第一,D第二;
D选手说:C最后,我第三;
E选手说:我第四,A第一;

比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。 

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>int Forecast(int arr[])//判断预测结果
{if ((arr[1] == 2) + (arr[0] == 3) == 1&& (arr[1] == 2) + (arr[4] == 4) == 1&& (arr[2] == 1) + (arr[3] == 2) == 1&& (arr[2] == 5) + (arr[3] == 3) == 1&& (arr[4] == 4) + (arr[0] == 1) == 1)return 1;else return 0;
}
int Repetition(int arr[])//判断数组内的值是否有重复的
{int i = 0;int j = 0;for (i = 0; i < 5; i++)for (j = i + 1; j < 5; j++){if (arr[i] == arr[j])return 0;}return 1;
}
int main()
{int arr[5] = { 0 };//数组arr[0]~arr[4]分别代表A B C D E//arr[i]的值表示其名次for (arr[0] = 1; arr[0] <= 5; arr[0]++){for (arr[1] = 1; arr[1] <= 5; arr[1]++){for (arr[2] = 1; arr[2] <= 5; arr[2]++){for (arr[3] = 1; arr[3] <= 5; arr[3]++){for (arr[4] = 1; arr[4] <= 5; arr[4]++){if (Forecast(arr) == 1)if (Repetition(arr) != 0)printf("A:为第%d名 B:为第%d名 C:为第%d名 D:为第%d名 E:为第%d名\n", arr[0], arr[1], arr[2], arr[3], arr[4]);}}}}}  system("pause");return 0;
}

优化:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>  
#include <stdlib.h>int maim()
{int a, b, c, d, e;for (a = 1; a <= 5; a++){for (b = 1; b <= 5; b++){for (c = 1; c <= 5; c++){for (d = 1; d <= 5; d++){for (e = 1; e <= 5; e++){if (((b == 2 || a == 3)==1) && ((b == 2 || e == 4)==1) && ((c == 1 || d == 2)==1) && ((c == 5 || d == 3)==1) && ((e == 4 || a == 1)==1)){if ((a*b*c*d*e == 120) && (a + b + c + d + e == 15))printf("a是第%d名,b是第%d名,c是第%d名,d是第%d名,e是第%d名", a, b, c, d, e);}}}}}}system("pause");return 0;
}

这篇关于5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果(使用函数)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/494148

相关文章

C++中assign函数的使用

《C++中assign函数的使用》在C++标准模板库中,std::list等容器都提供了assign成员函数,它比操作符更灵活,支持多种初始化方式,下面就来介绍一下assign的用法,具有一定的参考价... 目录​1.assign的基本功能​​语法​2. 具体用法示例​​​(1) 填充n个相同值​​(2)

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

Spring StateMachine实现状态机使用示例详解

《SpringStateMachine实现状态机使用示例详解》本文介绍SpringStateMachine实现状态机的步骤,包括依赖导入、枚举定义、状态转移规则配置、上下文管理及服务调用示例,重点解... 目录什么是状态机使用示例什么是状态机状态机是计算机科学中的​​核心建模工具​​,用于描述对象在其生命

PostgreSQL中rank()窗口函数实用指南与示例

《PostgreSQL中rank()窗口函数实用指南与示例》在数据分析和数据库管理中,经常需要对数据进行排名操作,PostgreSQL提供了强大的窗口函数rank(),可以方便地对结果集中的行进行排名... 目录一、rank()函数简介二、基础示例:部门内员工薪资排名示例数据排名查询三、高级应用示例1. 每

使用Python删除Excel中的行列和单元格示例详解

《使用Python删除Excel中的行列和单元格示例详解》在处理Excel数据时,删除不需要的行、列或单元格是一项常见且必要的操作,本文将使用Python脚本实现对Excel表格的高效自动化处理,感兴... 目录开发环境准备使用 python 删除 Excphpel 表格中的行删除特定行删除空白行删除含指定

全面掌握 SQL 中的 DATEDIFF函数及用法最佳实践

《全面掌握SQL中的DATEDIFF函数及用法最佳实践》本文解析DATEDIFF在不同数据库中的差异,强调其边界计算原理,探讨应用场景及陷阱,推荐根据需求选择TIMESTAMPDIFF或inte... 目录1. 核心概念:DATEDIFF 究竟在计算什么?2. 主流数据库中的 DATEDIFF 实现2.1

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

MySQL中的LENGTH()函数用法详解与实例分析

《MySQL中的LENGTH()函数用法详解与实例分析》MySQLLENGTH()函数用于计算字符串的字节长度,区别于CHAR_LENGTH()的字符长度,适用于多字节字符集(如UTF-8)的数据验证... 目录1. LENGTH()函数的基本语法2. LENGTH()函数的返回值2.1 示例1:计算字符串

prometheus如何使用pushgateway监控网路丢包

《prometheus如何使用pushgateway监控网路丢包》:本文主要介绍prometheus如何使用pushgateway监控网路丢包问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录监控网路丢包脚本数据图表总结监控网路丢包脚本[root@gtcq-gt-monitor-prome

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数