黑马程序员技术交流社区

标题: 石头剪刀布老师是用if做的,我是用switch做出来的,求大家... [打印本页]

作者: 649678291    时间: 2015-5-20 23:06
标题: 石头剪刀布老师是用if做的,我是用switch做出来的,求大家...
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main(){
  4. //    先定义玩家和电脑的变量
  5. //    先把电脑的出拳随机出来
  6.     int player = -1, computer = -1;
  7.     //0代表石头   1代表剪刀    2代表布
  8.     printf("请出拳,0代表石头,1代表剪刀,2代表布\n");
  9.     scanf("%d",&player);
  10.     while(player>2||player<0){
  11.         printf("你输的啥,重新输入!!\n");
  12.         scanf("%d",&player);
  13.     }
  14.     computer =  arc4random_uniform(3);
  15.     if(computer == 0){
  16.         printf("电脑出石头\n");
  17.     }else if(computer == 1){
  18.         printf("电脑出剪刀\n");
  19.     }else if(computer == 2){
  20.         printf("电脑出布\n");
  21.     }
  22.     //若是计算机赢
  23.     //计算机剪刀1          玩家布2
  24.     //计算机石头0          玩家剪刀1
  25.     //计算机布2            玩家石头0
  26. //    若是玩家出石头0     电脑出剪刀1     玩家赢
  27. //                      电脑出布2       玩家输
  28. //                      电脑出石头0      平局
  29.    
  30.     switch(player){
  31.             
  32.         case 0 :
  33.             printf("玩家出石头\n");
  34.             if(computer == 0){
  35.                 printf("平局\n");
  36.             }else if(computer == 1){
  37.                 printf("玩家赢\n");
  38.             }else{
  39.                 printf("玩家输\n");
  40.             }
  41.             break;
  42. //            0代表石头,1代表剪刀,2代表布
  43. //        当玩家出剪刀1       当电脑出0石头   玩家输
  44. //                          当电脑出1剪刀   平局
  45. //                           当电脑出2布     玩家赢
  46.         case 1 :
  47.             printf("玩家出剪刀\n");
  48.             if(computer == 0){
  49.                 printf("玩家输\n");
  50.             }else if(computer == 1){
  51.                 printf("平局\n");
  52.             }else{
  53.                 printf("玩家赢\n");
  54.             }
  55.             break;
  56.         case 2 :
  57.             printf("玩家出布\n");
  58.             if(computer == 0){
  59.                 printf("玩家赢\n");
  60.             }else if(computer == 1){
  61.                 printf("玩家输\n");
  62.             }else{
  63.                 printf("平局\n");
  64.             }
  65.         break;
  66.         
  67.     }
  68.     return 0;
  69. }
复制代码

作者: 天是蓝色的    时间: 2015-5-20 23:14
好牛,大神啊!这么难的题都搞的定,抱大腿!
作者: Rdxer    时间: 2015-5-20 23:32
不要辣么厉害好不好,
作者: 碧空海    时间: 2015-5-20 23:54
再次学习了,,,,,,,,,,,,,,,,,
作者: lyricdon    时间: 2015-5-21 00:01
case 后面  大括号都没有 怎么运行的。。
作者: 梦初醉    时间: 2015-5-21 00:10
都可以,但是感觉IF 好点
作者: cui0wei0    时间: 2015-5-21 13:47
lyricdon 发表于 2015-5-21 00:01
case 后面  大括号都没有 怎么运行的。。

为什么要加大括号啊?
作者: jingkai    时间: 2015-5-21 14:13
不错,赞个
作者: 薇Grace    时间: 2015-5-21 14:57
写的太复杂了吧……应该可以精简下
作者: 万物长生    时间: 2015-5-21 21:25
看看,自己还没写出来
作者: 尹世伟    时间: 2015-5-21 21:28
我发的也有个  大家可以交流下
作者: 宋兴1228    时间: 2015-5-21 22:27
好牛,大神啊!这么难的题都搞的定,抱大腿!
作者: woaidd99    时间: 2015-5-21 22:31
值得学习的思路啊
作者: doushu    时间: 2015-5-21 23:07
顶顶顶.........




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2