1
1
设计题目
计算
24
点
2
问题描述
有
2
、
3
、
4
、
5
、
6
、
7
、
8
、
9
、
10
、
J
、
Q
、
K
、
A
共
13
张牌,编一程序,判断
对任意给定的
4
张牌,能否在进行加、减、乘、除运算后,其运算结果等于
24
。
其中
J
按
11
计算,
Q
按
12
计算,
K
按
13
计算,
A
按
1
计算。
如果能得到结果
24
,
则输出可得到该结果的计算表达式。
若输入数据符合要求,且经过加、减、乘、除运算后,运行结果能得到
24
,
如输入
5
,
5
,
5
,
1
,则显示可得到该结果的计算表达式,如
5*(5-(1/5))
。
若输入数据小于
1
或者大于
13
或者不是整数时,提示输入错误。
若输入不能运算出
24
的数据,如
1
,
1
,
1
,
1
,则显示经过加、减、乘、除
运算后,运行结果不能得到
24
。
3
设计
3.1
存储结构设计
由于要储存的数据不多,主要是储存所输入的
4
个整数,所以采用一维数组
(a[4])
储存。而计算过程会出现小数,所以数据类型采用浮点型
(float)
。
3.2
主要算法设计
程序采用穷举法,对输入的
4
个数进行排列,有
4
!
=24
种。用
for
来循环,
if
来判断,算法如下。
for (i=0;i<4;i++)
for (j=0;j<4;j++)
if (j!=i)