#include <stdio.h>
#include <string.h>
int main()
{
while (1)
{
char a[100][5], b[100][5], c[100][5], d[100][5];
int na[100], nb[100], nc[100], nd[100]; //0 是牌数
int h[15] = {-50, -2,-3,-4,-5,-6,-7,-8,-9,-10,-20,-30,-40};
int ra = 0, rb = 0, rc = 0, rd = 0;
scanf ("%d", &na[0]);
for (int i = 1; i <= na[0]; i++) //从1开始的!!
scanf (" %s", a[i]);
scanf ("%d", &nb[0]);
for (int i = 1; i <= nb[0]; i++) //从1开始的!!
scanf (" %s", b[i]);
scanf ("%d", &nc[0]);
for (int i = 1; i <= nc[0]; i++) //从1开始的!!
scanf (" %s", c[i]);
scanf ("%d", &nd[0]);
for (int i = 1; i <= nd[0]; i++) //从1开始的!!
scanf (" %s", d[i]);
if (na[0] == 0 && nb[0] == 0 && nc[0] == 0 && nd[0] == 0)
break;
else
{
for (int i = 1; i <= na[0]; i++)
{
if (a[i][0] == 'C')
na[i] = 0;
else if (a[i][0] == 'D')
na[i] = 1;
else if (a[i][0] == 'S')
na[i] = 2;
else if (a[i][0] == 'H')
na[i] = 3;
if (a[i][1] == '1' && a[i][2] == '0')
na[i] = na[i] + 36;
else if (a[i][1] == '1' && a[i][2] == '1')
na[i] = na[i] + 40;
else if (a[i][1] == '1' && a[i][2] == '2')
na[i] = na[i] + 44;
else if (a[i][1] == '1' && a[i][2] == '3')
na[i] = na[i] + 48;
else if (a[i][1] >= '1' && a[i][1] <= '9')
na[i] = na[i] + (a[i][1] - '0' - 1) * 4;
}
for (int i = 1; i <= nb[0]; i++)
{
if (b[i][0] == 'C')
nb[i] = 0;
else if (b[i][0] == 'D')
nb[i] = 1;
else if (b[i][0] == 'S')
nb[i] = 2;
else if (b[i][0] == 'H')
nb[i] = 3;
if (b[i][1] == '1' && b[i][2] == '0')
nb[i] = nb[i] + 36;
else if (b[i][1] == '1' && b[i][2] == '1')
nb[i] = nb[i] + 40;
else if (b[i][1] == '1' && b[i][2] == '2')
nb[i] = nb[i] + 44;
else if (b[i][1] == '1' && b[i][2] == '3')
nb[i] = nb[i] + 48;
else if (b[i][1] >= '1' && b[i][1] <= '9')
nb[i] = nb[i] + (b[i][1] - '0' - 1) * 4;
}
for (int i = 1; i <= nc[0]; i++)
{
if (c[i][0] == 'C')
nc[i] = 0;
else if (c[i][0] == 'D')
nc[i] = 1;
else if (c[i][0] == 'S')
nc[i] = 2;
else if (c[i][0] == 'H')
nc[i] = 3;
if (c[i][1] == '1' && c[i][2] == '0')
nc[i] = nc[i] + 36;
else if (c[i][1] == '1' && c[i][2] == '1')
nc[i] = nc[i] + 40;
else if (c[i][1] == '1' && c[i][2] == '2')
nc[i] = nc[i] + 44;
else if (c[i][1] == '1' && c[i][2] == '3')
nc[i] = nc[i] + 48;
else if (c[i][1] >= '1' && c[i][1] <= '9')
nc[i] = nc[i] + (c[i][1] - '0' - 1) * 4;
}
for (int i = 1; i <= nd[0]; i++)
{
if (d[i][0] == 'C')
nd[i] = 0;
else if (d[i][0] == 'D')
nd[i] = 1;
else if (d[i][0] == 'S')
nd[i] = 2;
else if (d[i][0] == 'H')
nd[i] = 3;
if (d[i][1] == '1' && d[i][2] == '0')
nd[i] = nd[i] + 36;
else if (d[i][1] == '1' && d[i][2] == '1')
nd[i] = nd[i] + 40;
else if (d[i][1] == '1' && d[i][2] == '2')
nd[i] = nd[i] + 44;
else if (d[i][1] == '1' && d[i][2] == '3')
nd[i] = nd[i] + 48;
else if (d[i][1] >= '1' && d[i][1] <= '9')
nd[i] = nd[i] + (d[i][1] - '0' - 1) * 4;
}
int ns = 0, nnd = 0, nnc = 0, nf = 0, nh = 0;
for (int i = 1; i <= na[0]; i++)
{
if (na[i] % 4 == 3)
{
nh++;
nf++;
ra = ra + h[na[i] / 4];
}
if (na[i] == 46)
{
ra = ra - 100;
ns = 1;
nf++;
}
if (na[i] == 41)
{
ra = ra + 100;
nnd = 1;
nf++;
}
if (na[i] == 36)
{
nnc = 1;
nf++;
}
}
if (nh == 13 && nnd == 1 && ns == 1)
ra = 500;
if (nh == 13)
ra = ra + 194 + 200;
if (nnc == 1 && na[0] == 1)
ra = 50;
else if (nnc == 1)
ra = ra * 2;
if (nf == 16)
ra = 1000;
ns = 0, nnd = 0, nnc = 0, nf = 0, nh = 0;
for (int i = 1; i <= nb[0]; i++)
{
if (nb[i] % 4 == 3)
{
nh++;
nf++;
rb = rb + h[nb[i] / 4];
}
if (nb[i] == 46)
{
rb = rb - 100;
ns = 1;
nf++;
}
if (nb[i] == 41)
{
rb = rb + 100;
nnd = 1;
nf++;
}
if (nb[i] == 36)
{
nnc = 1;
nf++;
}
}
if (nh == 13 && nnd == 1 && ns == 1)
rb = 500;
if (nh == 13)
rb = rb + 194 + 200;
if (nnc == 1 && nb[0] == 1)
rb = 50;
else if (nnc == 1)
rb = rb * 2;
if (nf == 16)
rb = 1000;
ns = 0, nnd = 0, nnc = 0, nf = 0, nh = 0;
for (int i = 1; i <= nc[0]; i++)
{
if (nc[i] % 4 == 3)
{
nh++;
nf++;
rc = rc + h[nc[i] / 4];
}
if (nc[i] == 46)
{
rc = rc - 100;
ns = 1;
nf++;
}
if (nc[i] == 41)
{
rc = rc + 100;
nnd = 1;
nf++;
}
if (nc[i] == 36)
{
nnc = 1;
nf++;
}
}
if (nh == 13 && nnd == 1 && ns == 1)
rc = 500;
if (nh == 13)
rc = rc + 194 + 200;
if (nnc == 1 && nc[0] == 1)
rc = 50;
else if (nnc == 1)
rc = rc * 2;
if (nf == 16)
rc = 1000;
ns = 0, nnd = 0, nnc = 0, nf = 0, nh = 0;
for (int i = 1; i <= nd[0]; i++)
{
if (nd[i] % 4 == 3)
{
nh++;
nf++;
rd = rd + h[nd[i] / 4];
}
if (nd[i] == 46)
{
rd = rd - 100;
ns = 1;
nf++;
}
if (nd[i] == 41)
{
rd = rd + 100;
nnd = 1;
nf++;
}
if (nd[i] == 36)
{
nnc = 1;
nf++;
}
}
if (nh == 13 && nnd == 1 && ns == 1)
rd = 500;
if (nh == 13)
rd = rd + 194 + 200;
if (nnc == 1 && nd[0] == 1)
rd = 50;
else if (nnc == 1)
rd = rd * 2;
if (nf == 16)
rd = 1000;
}
if (ra > 0) printf ("+%d ", ra);
else if (ra < 0) printf ("%d ", ra);
else if (ra == 0) printf ("0 ");
if (rb > 0) printf ("+%d ", rb);
else if (rb < 0) printf ("%d ", rb);
else if (rb == 0) printf ("0 ");
if (rc > 0) printf ("+%d ", rc);
else if (rc < 0) printf ("%d ", rc);
else if (rc == 0) printf ("0 ");
if (rd > 0) printf ("+%d\n", rd);
else if (rd < 0) printf ("%d\n", rd);
else if (rd == 0) printf ("0\n");
}
}
2017-程序设计基础(c语言).zip
需积分: 0 169 浏览量
更新于2023-10-19
收藏 185KB ZIP 举报
《2017-程序设计基础(C语言)》压缩包包含了多个C语言编程实践的示例文件,这些文件主要用于教学目的,旨在帮助初学者掌握C语言的基础知识和编程技巧。下面将对这些示例程序进行详细解读,以便深入理解C语言的核心概念。
1. **H30**: 这可能是一个关于数据结构或算法的题目,虽然具体实现没有给出,但通常这类题目会涉及数组、循环、条件判断等基本语法,并可能涵盖排序、搜索等算法。
2. **8. 【中学】计算圆柱的侧面积及体积.cpp**: 这个程序用于计算圆柱体的侧面积和体积。在C语言中,这涉及到数学运算、结构体(可能包含半径和高度)以及输入输出操作,例如使用`scanf`和`printf`函数。
3. **整数分解 .cpp**: 这个程序可能实现了整数分解,即将一个整数分解为其因子的乘积。它可能使用了循环、条件语句以及数学逻辑,比如找到所有能被原始数字整除的数。
4. **46. 三角形是一个永不过时的话题.cpp**: 这个程序可能涉及计算三角形的各种属性,如边长、角度、周长、面积等。在C语言中,这需要用到浮点数处理、勾股定理以及几何知识。
5. **55. 回文字符串——递归.cpp**: 回文字符串是正读反读都相同的字符串。这个程序通过递归方法检查一个字符串是否为回文。递归是C语言中的高级主题,涉及到函数调用自身的过程。
6. **链表移动.cpp**: 链表是数据结构的一种,这个程序可能涉及链表的基本操作,如创建、插入、删除节点,或者更复杂的操作,如反转链表或移动节点。
7. **买东西.cpp**: 这个程序可能模拟了一个购物过程,涵盖了变量、条件语句、循环和数组,可能还涉及到基本的财务计算,如计算总价、找零等。
8. **14.【日期】根据日期求星期.cpp**: 这个程序可能使用了日期计算,可能涉及到日历算法,比如计算给定日期是星期几。在C语言中,这可能需要处理日期结构体和时间库。
9. **【中学】谁能出线.cpp**: 这个程序可能与竞赛选拔或比赛排名有关,涉及到比较、排序算法,以及可能的逻辑判断来确定获胜者。
10. **38. 【小学递归】杀鸡用牛刀——要用递归啊!.cpp**: 这个程序以幽默的方式引入递归概念,可能是解决一个可以通过递归简化的问题,如计算阶乘、斐波那契数列等。
通过学习和实践这些示例程序,学习者可以深入理解C语言的基本语法、控制结构、数据类型、函数、递归、文件操作等核心概念,同时还能提高算法设计和问题解决能力。对于初学者来说,这是一个很好的起点,可以帮助他们建立起坚实的编程基础。
2301_80104729
- 粉丝: 0
- 资源: 1