提高篇编程项目 第十九讲 扑克牌 发奖金
来源:互联网 发布:铭牌设计软件 编辑:程序博客网 时间:2024/06/09 19:48
任务和代码:
【项目4-一副扑克牌】
下面的程序,输出了52张扑克牌(如图)
注:H、S、D、C代表4种花色
/**Copyright (c) 2016, CSDN学院*All rights reserved.*文件名:main.c*作者:DylanLiu*完成日期:2016/11/05*版本号:V1.0**问题描述:。*程序输出:。*/#include <stdio.h>int main( ){ char c[4]= {'H','S','D','C'}; int v[13]= {1,2,3,4,5,6,7,8,9,10,11,12,13}; int i,j; for(i=0; i<4; i++) { for(j=0; j<13; j++) { printf("%c",c[i]); if(v[j]==1) printf("A"); else if(v[j]==11) printf("J"); else if(v[j]==12) printf("Q"); else if(v[j]==13) printf("K"); else printf("%d",v[j]); printf(" "); } printf("\n"); } return 0;}
输出结果:
任务和代码:
【项目5 - 发奖金】
(1)过年了,村里要庆祝一下。村长对村里的128个村民说:做一个游戏,让每个人把出生年+月+日得到一个数。例如:1995年11月8日=1995+11+8=2014。然后把这个数报上来。村里有一笔钱要作为游戏的奖金,数额为M元(在程序中可以用常量固定为一个数)。如果有人报上来的数字与M相同,就把这笔钱发给这些人。如果只有一个人得奖,奖金都归这个人。如果有多于一个人得奖,则他们平分这笔钱。现在让我们来写一段程序算算都有哪些人得到了奖金?得到多少?请写出这个程序。
/**Copyright (c) 2016, CSDN学院*All rights reserved.*文件名:main.c*作者:DylanLiu*完成日期:2016/11/05*版本号:V1.0**问题描述:过年了,村里要庆祝一下。村长对村里的128个村民说:做一个游戏,让每个人* 把出生年+月+日得到一个数。例如:1995年11月8日=1995+11+8=2014。然后把这* 个数报上来。村里有一笔钱要作为游戏的奖金,数额为M元(在程序中可以用常* 量固定为一个数)。如果有人报上来的数字与M相同,就把这笔钱发给这些人。* 如果只有一个人得奖,奖金都归这个人。如果有多于一个人得奖,则他们* 平分这笔钱。现在让我们来写一段程序算算都有哪些人得到了奖金?得到多少?。*程序输出:。*//* ********************************************************************************************** *//* ***************************说明: 测试时只用了10组数据************************************** *//* ********************************************************************************************** */#include <stdio.h>#define N 10 //128个村民#define M 2014 //钱的数量int main(void){ int year[N]={0}; int month[N]={0}; int day[N]={0}; int i=0; int sum[N]={0}; int count=0; //得奖的村民的数目 float ave=0.0; //获奖者平均的奖金数目 //printf("请输入年, 月, 日: "); for (i=0; i<N; i++){ printf("请输入您(第%d位)的生日(年,月,日): ", i+1); scanf("%d %d %d", &year[i], &month[i], &day[i]); } for (i=0; i<N; i++){ sum[i] = year[i]+month[i]+day[i]; } for (i=0; i<N; i++){ if(sum[i]==M){ printf("中奖的是:%d\t 他(她)的生日为:%d %d %d\n", i+1, year[i], month[i], day[i]); count++; } } ave=M/count; printf("他(她)们每人获得的奖金为:%.2f\n", ave); return 0;}
输出结果:
(2)有村民提出村长在幸运数字上做手脚,不公平。修改后的规则是:每人写一个1000以内的数字,谁写的数字与平均值最接近,M元的奖金就由谁拿,有多人与平均值差值相同,则均分。例如,参加的村民有5个人,报的数字分别为98、7、50、980、1,平均值为227(平均值也取成整数就行了),与98最接近,编号为0的村民得奖。这个游戏实际上有很强的政治学背景,一种策略是串通,大家都报一样的数,平分奖金;在每个人都想争取最大利益的前提下,各人报的数字又对结果都有影响,这里面包含一系列非常有意思的研究课题。
提示:输入数据后,用一次循环求和,进而求出平均值;再一次循环,求出最小的差值;再一次循环,将差值最小的村民的编号放入幸运数组(因为可能不止一位,所以需要这个数组)。
/**Copyright (c) 2016, CSDN学院*All rights reserved.*文件名:main.c*作者:DylanLiu*完成日期:2016/11/05*版本号:V1.0**问题描述:每人写一个1000以内的数字,谁写的数字与平均值最接近,M元的奖金就由谁拿,* 有多人与平均值差值相同,则均分。例如,参加的村民有5个人,报的数字分别为* 98、7、50、980、1,平均值为227(平均值也取成整数就行了),与98最接近,编号为0的* 村民得奖。这个游戏实际上有很强的政治学背景,一种策略是串通,大家都报一样的* 数,平分奖金;在每个人都想争取最大利益的前提下,各人报的数字又对结果都有影响,* 这里面包含一系列非常有意思的研究课题。。*程序输出:。*/#include <stdio.h>#define MONEY 2014 //总奖金(单位:万元)#define POPULATION 8 //参赛的人数int main( ){ int people[POPULATION]; //记录村民上报数据 int minu[POPULATION]; //记录每个人与平均值的差 int luckyPeople[POPULATION]; //记录获奖者编号 int nLucky=0; //获奖者人数 int sum=0, ave, min_minu=9999; //和、平均、差值、最小差值 int i; for (i=0; i<POPULATION; i++) //输入村民报的数字 { printf("请第%d位参赛者输入:", i+1); scanf("%d",&people[i]); sum+=people[i]; //输入后立即求和 } ave=sum/POPULATION; //求平均 for (i=0; i<POPULATION; i++) //与平均数的差值保存到minu数组中,在同一循环中求出最小值 { if(people[i]>ave) //分情况,使差值保持非负 minu[i]=people[i]-ave; else minu[i]=ave-people[i]; if(min_minu>minu[i]) //需要时,修改最小差值 min_minu=minu[i]; } for (i=0; i<POPULATION; i++) //找出最小差值的村民 { if (minu[i] == min_minu) { luckyPeople[nLucky] = i; nLucky ++; } } //输出获奖者编号及所获奖金数额 printf("平均值为%d,与平均值的最小差值是%d\n",ave,min_minu); printf("共有%d位获奖,他(们)是\n", nLucky); for (i=0; i<nLucky; i++) { printf(" 第%d位,报数%d,得奖金%d\n", luckyPeople[i], people[luckyPeople[i]], MONEY/nLucky); } return 0;}
输出结果:
0 0
- 提高篇编程项目 第十九讲 扑克牌 发奖金
- (提高篇)第十九讲 编程项目 数组的练习
- 提高项目16.1-发奖金1
- 提高篇编程项目 第十九讲项目二/三 成绩处理 当年第几天(数组方案)
- 提高篇第十六讲【项目4-一副扑克牌】
- C语言提高-第18讲: 一维数组应用二三例(发奖金)
- 提高项目15、一副扑克牌
- 发奖金
- 发奖金
- 发奖金
- 第十九讲编程项目 字母及其编码,能对齐的数据。
- 第十九讲项目一 字母及其编码
- 提高项目16.2 村民奖金2
- 提高第18课时,实践5,发奖金
- 第十九讲
- 提高篇十六讲【项目5
- 提高篇第二十六讲项目2
- 提高篇第二十六讲项目2
- C++中关于std::endl的理解
- 经典排序算法代码
- Maven官方文档
- JavaScript错误-throw、try{ } catch(err){ }
- nyoj 大数阶乘
- 提高篇编程项目 第十九讲 扑克牌 发奖金
- linux命令详解-useradd,groupadd
- 最新版 Xcode8 macOS Sierra 10.12 安装CocoaPods
- 基于oracle的分页功能(jdbc实现)
- HDU 1402 A * B Problem Plus FFT入门题
- c语言中的内存问题
- android graphic(7)—gralloc分配图形缓冲区
- Gstreamer中一些gst-launch常用命令
- navicat 多用户远程连接 mysql 数据库