题目

解决代码及点评



/************************************************************************/
/*
54. 有N张牌,计算机和你轮流取牌,每次只能取 1─2张,谁最后取完谁胜利。编写完成此功能的程序。
要求:
1) 让计算机先取。
2) 你取的张数由键盘输入。
3) 计算机第一次取牌时由键盘输入来确定是取1还是取2,以后它再取牌时由程序判断来决定取几张牌。 */
/************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h> void main()
{//默认设置 N>2;
const int N=10;
printf("总共有牌%d\n",N);
int num=N;
if (num<=2)
{
printf("这有什么好玩的....");
goto loop;
}
int who=0;
printf("请选择游戏选项 1 代表计算机先取 2,代表玩家先取\n");
scanf_s("%d",&who);
if (who==1)
{
printf("请为电脑第一次选择张数 1 或2 \n");
int temp=0;
scanf_s("%d",&temp);
if (temp!=1&&temp!=2)
{
printf("谁让你乱按的!!");
return;
}
num-=temp;
while(num>1)
{
scanf_s("%d",&temp);
if (temp!=1&&temp!=2)
{
printf("谁让你乱按的!!");
goto loop;
}
else
{
num-=temp;
printf("现在还剩%d张牌",num);
}
if (num==0)
{
printf("玩家赢了\n");
goto loop;
}
else if (num==1)
{
printf("电脑赢了");
goto loop;
}
if (num>1)
{
int temp1=rand()%2+1;
printf("电脑选择%d\n",temp1);
num-=temp1;
printf("现在还剩%d张牌",num);
} }
if (num==0)
{
printf("电脑赢了");
goto loop;
}
else if (num==1)
{
printf("玩家赢了");
goto loop;
} }
else if (who==2)
{
int temp;
while(num>1)
{
scanf_s("%d",&temp);
if (temp!=1&&temp!=2)
{
printf("谁让你乱按的!!");
goto loop;
}
else
{
num-=temp;
printf("现在还剩%d张牌",num);
}
if (num==0)
{
printf("玩家赢了");
goto loop;
}
else if (num==1)
{
printf("电脑赢了");
goto loop;
}
if (num>1)
{
int temp1=rand()%2+1;
printf("电脑选择%d\n",temp1);
num-=temp1;
printf("现在还剩%d张牌",num);
} }
if (num==0)
{
printf("电脑赢了");
goto loop;
}
else if (num==1)
{
printf("玩家赢了");
goto loop;
} }
else
{
printf("谁让你乱按的!!");
} loop: system("pause");
}

代码编译以及运行

由于资源上传太多,资源频道经常被锁定无法上传资源,同学们可以打开VS2013自己创建工程,步骤如下:

1)新建工程

2)选择工程

3)创建完工程如下图:

4)增加文件,右键点击项目

5)在弹出菜单里做以下选择

6)添加文件

7)拷贝代码与运行

程序运行结果

代码下载

http://download.csdn.net/detail/yincheng01/6681845

解压密码:c.itcast.cn






基于visual Studio2013解决C语言竞赛题之1054抽牌游戏的更多相关文章

  1. 基于visual Studio2013解决C语言竞赛题之1049抓牌排序

       题目 解决代码及点评 /* 功能:插入排序.许多玩牌的人是以这样的方式来对他们手中的牌进行排序的: 设手中原有3张牌已排好序,抓1张新牌,若这张新牌的次序在原来的第2张牌之后,第 3 ...

  2. 基于visual Studio2013解决C语言竞赛题之1053洗牌

       题目 解决代码及点评 /* 功能:洗扑克牌.将54张牌分别编号为1,2,-,54号,并放在数组M中. 洗牌方法如下:产生[1,54]区间内的一个随机数K,将M[1]与M[K]交换: ...

  3. 基于visual Studio2013解决C语言竞赛题之0401阶乘

      题目 解决代码及点评 这个是一道经典的教科书题目,基本上每本基础的c/c++语言教科书都会有这个题目 用来演示循环语句 #include <stdio.h> #include ...

  4. 基于visual Studio2013解决C语言竞赛题之0205位数求和

     题目

  5. 基于visual Studio2013解决C语言竞赛题之0201温度转换

    题目 解决代码及点评 #include <stdio.h> #include <stdlib.h> void main() { float f; float c; float ...

  6. 基于visual Studio2013解决C语言竞赛题之0409 100以内素数

       题目 解决代码及点评 在已经知道素数是怎么判断的基础上,增加循环,可以判断出100以内的素数 /******************************************* ...

  7. 基于visual Studio2013解决C语言竞赛题之0408素数

      题目 解决代码及点评 判断一个数是不是素数的方法,一般是看n是不是能被n以内的某个整数(1除外)整除 为了提高效率,这个整数范围一般缩小到n的平方根 如果在这个范围内的整数都不能整除,那么 ...

  8. 基于visual Studio2013解决C语言竞赛题之0407最大值最小值

      题目 解决代码及点评 这道题考察循环和比较 /*********************************************************************** ...

  9. 基于visual Studio2013解决C语言竞赛题之0406数列求和

      题目 解决代码及点评 这个题目,还是考察for循环的使用 以及数列规律,该数列的特点是第n个分子 = 第n-1个分子 + 第n-2个分子,分母也是此规律 而另外一个规律是第n个分子和第n- ...

随机推荐

  1. UVA 10057 A mid-summer night's dream. 仲夏夜之梦 求中位数

    题意:求中位数,以及能成为中位数的数的个数,以及选择不同中位数中间的可能性. 也就是说当数组个数为奇数时,中位数就只有一个,中间那个以及中位数相等的数都能成为中位数,选择的中位数就只有一种可能:如果为 ...

  2. android CircularSeekBar

    Android 中的 seekBar会被开发者经常用到,用的最多的空拍是控制音量.但是有时后为了更好的UI效果,横着的拖动条不能满足我们项目的需要,我们可能需要竖直的或者圆形的拖动条,那这两种样式的类 ...

  3. SPI通信

    SPI是由Motorola公司提出的一种同步串行外围接口:它在速度要求不高,低功耗,需要保存少量参数的智能化传感系统中得到了广泛应用: SPI是一个全双工的同步串行接口,在数据传输过程中,总线上只能是 ...

  4. 在AD09中查找元件和封装

    在AD09中查找元件和封装 Altium Designer 软件方法/步骤 Altium下Miscellaneous Devices.Intlib元件库中常用元件有: 电阻系列(res*)排组(res ...

  5. JAVA 中URL链接中文参数乱码的若干处理方法

    方法一: http://xxx.do?ptname='我是中国人' String strPtname = request.getParameter("ptname"); strPt ...

  6. [转] iOS (OC) 中 KVC 与 KVO 理解

    转自: http://magicalboy.com/kvc_and_kvo/ KVC 与 KVO 是 Objective C 的关键概念,个人认为必须理解的东西,下面是实例讲解. Key-Value ...

  7. html5 学习笔记

    一.ie8及以下对html5相关语义标签的支持 <!-[if lt IE9]> <script src="html5.js"></script> ...

  8. tomcat虚拟主机虚拟目录配置

    今天着实要记上一笔,需要配置tomcat虚拟目录的问题 一 首先看两个名词 appBase -- 顾名思义 就是你app所在的目录,目录下面的子目录将自动被部署为应用:war被解压并部署 docBas ...

  9. IE6/7/8 CSS兼容性问题和解决方法汇总

    断断续续的在开发过程中收集了好多的bug以及其解决的办法,都在这个文章里面记录下来了!希望以后解决类似问题的时候能够快速解决,也希望大家能在留言里面跟进自己发现的ie6 7 8bug和解决办法! 1: ...

  10. java中传值及引伸深度克隆的思考(说白了Java只能传递对象指针)

    java中传值及引伸深度克隆的思考 大家都知道java中没有指针.难道java真的没有指针吗?句柄是什么?变量地址在哪里?没有地址的话简直不可想象! java中内存的分配方式有两种,一种是在堆中分配, ...