c 隨機產生字串或數組方法

來源:互聯網
上載者:User

方法一

電腦解決實際問題常用資料類比和構造的方法。藉助於數組,資料類比和構造可以很方便地實現。

隨機產生撲克牌的思路:

1、定義字元數組,構造一副順序存放的新牌,包括花色與牌值。

2、根據隨機數把新牌打亂。

3、按數組分發新牌(根據規則顯示)。

代碼如下:

#include <stdio.h>
#include <stdlib.h>

void main(void)
{
     int i,j;
     char ch1,ch2;
     char s[104];/* 存放一副牌 */
     char a[]="hdsc";/* 定義花色 */

     /* 定義牌值 */
     char b[14] = "akqj1098765432";

     /* 產生一副新牌 */
     for(i=0;i<4;i++)
     {
          for(j=0;j<13;j++)
          {
               s[2*j+26*i] = a[i];
               s[2*j+26*i+1] = b[j];
          }
     }

     randomize(); /* 初始化隨機數發生器 */

     for(i=0;i<52;i++)
     {
          j = random(52-i);
          ch1 = s[2*j];   /* 與最後一張牌交換花色 */
          s[2*j] = s[102-2*i];
          s[102-2*i] = ch1;
          ch2 = s[2*j+1];   /* 與最後一張牌交換牌值 */
          s[2*j+1] = s[103-2*i];
          s[103-2*i] = ch2;
     }

     printf("nn");

     for(i=0,j=0;i<104;i+=2,j++) /* 顯示大亂後新牌 */
     {
          if(!(j%13))
          {
               printf("nnn"); /* 13張牌為一組 */
          }
          printf("  %c%c",s[i],s[i+1]);
     }
     getch();
}

 

方法二

#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <iostream>

// using namespace std;

int main()
{
    const char *c = "0123456789abcdefghijklmnopqrstuvwxyz";

    srand(static_cast<unsigned int>(time(null)));
    std::cout << "the random char array is:";
    for(int i = 0; i < 5; ++i)
    {
        std::cout << std::endl;
        int index = 0 ;
        for(int j = 0; j < 5; ++j)
        {
            index = rand() % strlen(c);
            std::cout << c[index ]
        << c[index]
        << " ";
        }
    }
    std::cout << std::endl;
    return 0;
}

運行效果如下:

the random char array is:
00 qq 88 ii zz
qq bb oo 00 yy
rr yy tt ww ll
ss rr aa bb oo
11 yy tt 33 uu

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.