广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 3301 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
kyahm
数位造型
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x0 鲜花 x0
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[C/C++][求助] 选写一C程式=>洗牌再发10张牌将其点数相加[已解决]
这是我们的作业,可是写了好久都写不出来.....
想请各位大大帮帮忙, 感激不尽....

题目如下...
  通用以下程式改写发10张牌,将其所有点数相加printf出来....
重点:洗牌, 发10张牌, 点数相加...(*要用C写喔. 谢谢~*)
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void shuffle(int wdeck[]);
void deal(const int wdeck[],const char *wface[], const char *wsuit[]);
int main ()
{
    const char *suit={"H","D","C","S"};
    const char *face={"ace","deuce","three","four","five","six", ..

访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容



[ 此文章被三仙在2008-12-03 18:12重新编辑 ]

此文章被评分,最近评分记录
财富:0 (by 三仙) | 理由:



献花 x0 回到顶端 [楼 主] From:台湾台北市亚太线上公司 | Posted:2008-11-30 15:28 |
teldeanmac85 手机
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x1 鲜花 x21
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

复制程式
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

#define N 52

int main(int argc, char* argv[])
{
   int poker[N], sum = 0;    
   int i, j, tmp, remain;    
   
   // 初始化阵列     
   for(i = 0; i < N; i++){        
      poker[i] = i;     
   }
   
   srand(time(0));

   // 洗牌   
   for(i=0;i<N;i++){
      j = rand() % N ;
         tmp = poker[i];
         poker[i] = poker[j];
         poker[j] = tmp;
   }
   
   for(i = 0; i < 10; i++) {      
      // 判断花色         
      switch((poker[i] / 13)) {             
         case 0: printf("H"); break;            
         case 1: printf("D"); break;           
         case 2: printf("C"); break;            
         case 3: printf("S"); break;        
         }  
         
         // 扑克牌数字        
      remain = (poker[i] % 13)+1;   
         
         //点数相加
         sum = sum + remain; 
         
         switch(remain) {             
         case 13: printf("K "); break;            
         case 12: printf("Q "); break;           
         case 11: printf("J "); break;           
         default: printf("%d ", remain); break;        
      }  
         

   }
   printf("\n");
   printf("SUM : %d\n",sum);  

   return 0;
}

//////////////////////////////////////
C6 D8 H6 DQ C1 D4 CJ D7 C2 SJ
SUM : 68
//////////////////////////////////////

作法 : 52张牌 填进 poker[52] = 0~51
poker   / 13 => row
(poker % 13) +1 => col (必须+1 shift 1~52)

此文章被评分,最近评分记录
财富:50 (by 三仙) | 理由: 因为您的参与,让程式设计更容易!!


献花 x0 回到顶端 [1 楼] From:台湾中华电信 | Posted:2008-12-02 01:25 |

首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.013642 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言