C语言的随机发牌程序(红桃、黑桃、梅花、方块)
做一个随机发牌的C语言程序,供大家学习,思考。
未做任何注释,有测试时候留下的一些输出语句,一遍方便测试。
/*
author:nunu
qq:398269786
*/
#include<stdio.h>
#include<stdlib.h>
#include<time.h> int main()
{
int a[60];
int b[60];
int w = 0;
int wi,wj,wii;
int i,j,index,x=0,m;
for(i=0;i<54;i++)
a[i]=i+1;
srand((unsigned)time(0));
for(i=0;i<54;)
{
index=rand()%54;
if(a[index]!=0)
{
b[i]=a[index];
//printf("%d ",b[i]);
a[index]=0;
++i;
}
}
printf("\n说明:\n");
printf("*******************\n");
printf("** 红桃 %c ",3);
printf("**\n");
printf("** 方块 %c ",4);
printf("**\n");
printf("** 梅花 %c ",5);
printf("**\n");
printf("** 黑桃 %c ",6);
printf("**\n");
printf("** 大王 A **\n** 小王 a **\n");
printf("*******************\n");
printf("\n请输入打牌人数:\n");
scanf("%d",&w);
wi = 54/w;
wj = 54%w;
//printf("%d,%d",wi,wj);
for (j = 0;j < w;j++)
{
m = 0;
printf("\n\n第%d个人的牌\n",j+1);
wj --;
if (wj>=0)
wii = wi + 1;
else
wii = wi; //红桃
printf("红桃 %c ",3);
printf(":");
for(i = j*wii;i<(j+1)*wii;i++)
{
if (b[i]<=13&&b[i]>0)
{
m++;
if (b[i]==11)
printf("J ");
else if (b[i]==12)
printf("Q ");
else if (b[i]==13)
printf("K ");
else
printf("%d ",b[i]);
}
} //方块
printf("\n方块 %c ",4);
printf(":");
for(i = j*wii;i<(j+1)*wii;i++)
{
if (b[i]<=26&&b[i]>13)
{
m++;
b[i] = b[i]-13;
if (b[i]==11)
printf("J ");
else if (b[i]==12)
printf("Q ");
else if (b[i]==13)
printf("K ");
else
printf("%d ",b[i]);
}
} //梅花
printf("\n梅花 %c ",5);
printf(":");
for(i = j*wii;i<(j+1)*wii;i++)
{ if (b[i]<=39&&b[i]>26)
{
m++;
b[i] = b[i]-26;
if (b[i]==11)
printf("J ");
else if (b[i]==12)
printf("Q ");
else if (b[i]==13)
printf("K ");
else
printf("%d ",b[i]);
}
}
//黑桃
printf("\n黑桃 %c ",6);
printf(":");
for(i = j*wii;i<(j+1)*wii;i++)
{
if (b[i]<=52&&b[i]>39)
{
m++;
b[i] = b[i]-39;
if (b[i]==11)
printf("J ");
else if (b[i]==12)
printf("Q ");
else if (b[i]==13)
printf("K ");
else
printf("%d ",b[i]);
}
}
//大小王
printf("\n大小王 A or a :");
for(i = j*wii;i<=(j+1)*wii;i++)
{
if (b[i]==53)
{
m++;
printf("A ");
}
if (b[i]==54)
{
m++;
printf("a ");
}
}
printf("\n总共:%d张牌!!!",m);
} }
测试结果,由于屏幕显示有限,我只做2个人分牌的测试,其他的自己测试吧、

C语言的随机发牌程序(红桃、黑桃、梅花、方块)的更多相关文章
- Python面向对象编程扑克牌发牌程序,另含大量Python代码!
1. 题目 编写程序, 4名牌手打牌,计算机随机将52张牌(不含大小鬼)发给4名牌手,在屏幕上显示每位牌手的牌. 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不 ...
- 一个有趣的基于C++的模拟发牌程序
在内存中模拟出一副牌,然后模拟洗牌,发牌等动作. 流程是这样的:构建一副牌保存到一个数组中—洗牌—创建玩家—向玩家发牌–输出每个玩家的牌. #include <stdio.h> #incl ...
- 基于php基础语言编写的小程序之计算器
基于php基础语言编写的小程序之计算器 需求:在输入框中输入数字进行加.减.乘.除运算(html+php) 思路: 1首先要创建输入数字和运算符的输入框,数字用input的text属性,运算符用sel ...
- 利用Scala语言开发Spark应用程序
Spark内核是由Scala语言开发的,因此使用Scala语言开发Spark应用程序是自然而然的事情.如果你对Scala语言还不太熟悉,可 以阅读网络教程A Scala Tutorial for Ja ...
- SAS进阶《深入解析SAS》之开发多语言支持的SAS程序
SAS进阶<深入解析SAS>之开发多语言支持的SAS程序 1. 多语言支持的应用程序是指该程序在世界给第使用时,其能够处理的数据,以及处理数据的方式.信息展现的方式都符合当地的语言.文化习 ...
- python 项目实战之随机杀死程序
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019/10/14 13:54 # @Author : zoulixiang # @S ...
- JAVA 基础编程练习题41 【程序 41 猴子分桃】
41 [程序 41 猴子分桃] 题目:海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把 多的一个扔入海中,拿走了一份.第二只猴子把剩下的桃子又平均分成五份,又多了 ...
- JAVA 基础编程练习题17 【程序 17 猴子吃桃问题】
17 [程序 17 猴子吃桃问题] 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又 将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一 ...
- [转载] 使用C/C++语言编写基于DSP程序的注意事项
原文地址:『转』使用C/C++语言编写基于DSP程序的注意事项作者:skysmile 1.不影响执行速度的情况下,可以使用c或c/c++语言提供的函数库,也可以自己设计函数,这样更易于使用“裁缝师 ...
随机推荐
- [Usaco2006 Nov]Bad Hair Day 乱发节
Time Limit: 2 Sec Memory Limit: 64 MBSubmit: 1268 Solved: 625[Submit][Status][Discuss] Description ...
- QueenAttack
问题分析: 1.对于行和列,要求得每行或每列的棋子个数,只需要把横坐标或纵坐标相同的棋子数目相加即可,然后使用k*(k-1)/2就可求得攻击次数 2.对于对角线上的点,需要分析对角线上点的坐标关系.分 ...
- Linux后台运行命令nohub输出pid到文件(转)
用nohup可以启动一个后台进程.让一个占用前台的程序在后台运行,并静默输出日志到文件: nohup command > logfile.txt & 但是如果需要结束这个进程,一般做法是 ...
- http 连接失败重连机制
1.我们做web开发时,需要经常使用httpclient来请求http服务,有时为了安全起见,服务提供方会提供多个http地址,这样如果我们请求某个ip出现异常,可以重试其他的ip地址,来尽量保证系统 ...
- RabbitMQ Hello World
RabbitMQ Hello World rabbitmq operation: C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.2\sbin ...
- Python练习题2
如果真的想学精,学什么都不是好学的,如果真的想把Python学的出神入化,几乎自己想做什么都可以,就要下定恒心,坚持下去. 接下来继续更新Python练习题2,通过更新前一部的练习题让自己也学到了不少 ...
- 基于 Vue.js 之 iView UI 框架非工程化实践记要 使用 Newtonsoft.Json 操作 JSON 字符串 基于.net core实现项目自动编译、并生成nuget包 webpack + vue 在dev和production模式下的小小区别 这样入门asp.net core 之 静态文件 这样入门asp.net core,如何
基于 Vue.js 之 iView UI 框架非工程化实践记要 像我们平日里做惯了 Java 或者 .NET 这种后端程序员,对于前端的认识还常常停留在 jQuery 时代,包括其插件在需要时就引 ...
- Codeforces 480B Long Jumps 规律题
题目链接:点击打开链接 题意: 输出n l x y 有一根直尺长度为l 上面有n个刻度. 以下n个数字是距离开头的长度(保证第一个数字是0,最后一个数字是l) 要使得 直尺中存在某2个刻度的距离为x ...
- linux路由表解析
1 格式 Destination 这个和Genmask一起构成目标网络.路由是路由到目标网络,知道目标网络就可以到达目标路由器,然后在该网络中找到目标机器. Gateway 网关,数据包的下一跳.比如 ...
- list if else 遍历 特征合并
特征合并 import re l = ['a', 'b1'] ll = [i if re.search('\d', i) is None else i[0:re.search('\d', i).end ...