c語言模擬紅包,c語言微信紅包

本文目錄一覽:

模擬一個微信搶紅包的演算法,錢數為x,人數為y,用隨機數顯示出每個紅包的金額,c語言題目

#include stdio.h

#include stdlib.h

#include time.h

double Random() {return (rand() %1000) * 0.001;}

double Random(double aver)

{

    double ret = 0;

    for(int i=0; i2; ++i) ret += Random();

    return (aver * ret);

}

int main(int argv, int **argc)

{

    double x, v;

    int y, i;

    double aver, min;

    srand(time(NULL));

    printf(“請輸入金額:”);

    scanf(“%lf”, x);

    printf(“請輸人數:”);

    scanf(“%d”, y);

    aver = x / y;

    min  = 0.01 * y;

    for(i=0; iy-1  x  min; ++i)

    {

        v = Random(aver);

        while(v  x) v = Random(aver);

        printf(“%.2f\n”, v);

        x   -= v;

        min -= 0.01;

    }

    for(i=0; i  y-1; ++i)

    {

        printf(“%.2f\n”, 0.01);

        x -= 0.01;

    }

    printf(“%.2f\n”, x);

    return 0;

}

C語言 微信紅包

#include stdio.h

#include string.h

#include time.h

#define MAX_TOTAL_MONEY 200 //紅包的最大金額

#define MIN_PER_PLAYER  1   //一個人搶到的的最小面額1元

#define MAX_PLAYER_CNT (MAX_TOTAL_MONEY/MIN_PER_PLAYER) //最大搶紅包的遊戲人數

typedef struct player

{

    char *name;//標記玩家 可以不填

    unsigned int money_get;//搶到的紅包

}PLAYER_T;

//每個人領取到的紅包金額不等 這個要求比較難搞 暫時不考慮

int main(int argc, char *argv[])

{

    unsigned int total_money = 0;    //不考慮角和分 浮點運算比較複雜

    unsigned int player_cnt = 0;

    int on_off = 0;

    int i = 0;

    int j = 0;

    PLAYER_T player[MAX_PLAYER_CNT] = {0};

    PLAYER_T tmp = {0};

    

    printf(“輸入紅包金額:\n”);

    scanf(“%u”, total_money);

    printf(“輸入遊戲人數:\n”);

    scanf(“%u”, player_cnt);

    printf(“是否需要減小貧富差距(0為關閉其餘為開啟):\n”);

    scanf(“%u”, on_off);

    

    //不符合規則的輸入判斷

    if (total_money  MAX_TOTAL_MONEY || 0 == total_money || 0 == player_cnt || player_cnt*MIN_PER_PLAYER  total_money)

    {

        printf(“紅包金額最小%u元 最大%u元 遊戲人數最小1人 最大%u人\n”, MIN_PER_PLAYER, MAX_TOTAL_MONEY, MAX_PLAYER_CNT);

        return 0;

    }

    

    for (i = 0; i  player_cnt; i++)

    {

        //設置隨機種子

        srand(time(NULL)+i);

        //根據隨機種子獲取一個偽隨機數作為搶到的紅包 並通過余運算使其始終小於total_money

        player[i].money_get = rand()%total_money;

        

        //限制所有人所能搶到的最大紅包為當前金額池的1/5而不是全部

        if (0 != on_off)

        {

            if (total_money  5)//5塊錢以上再限制

            {

                player[i].money_get = rand()%(total_money/5);

            }

        }

        

        //最後一個人拿所有剩下的紅包

        if (player_cnt – 1 == i)

        {

            player[i].money_get = total_money;

        }

        //運氣差隨機到0元 給你最小面額

        else if (0 == player[i].money_get)

        {

            player[i].money_get = MIN_PER_PLAYER;

        }

        //剩下的要保證每個人能搶到最小面額

        else if (total_money – player[i].money_get  (player_cnt-i-1)*MIN_PER_PLAYER)

        {

            player[i].money_get = total_money – (player_cnt-i-1)*MIN_PER_PLAYER;

        }

        

        //把搶到的金額從紅包池中減掉

        total_money -= player[i].money_get;

        //如果填了name 可以把名字列印出來

        printf(“第%d個玩家搶到紅包:%u元\n”, i+1, player[i].money_get);

    }

    

    //冒泡排序 找出手氣最佳者

    for (i = 0; i  player_cnt; i++)

    {

        for (j = i+1; j  player_cnt; j++)

        {

            if (player[i].money_get  player[j].money_get)

            {

                memcpy(tmp, player[j], sizeof(PLAYER_T));

                memcpy(player[j], player[i], sizeof(PLAYER_T));

                memcpy(player[i], tmp, sizeof(PLAYER_T));

            }

        }

    }

    printf(“手氣最佳者搶到紅包:%u元\n”, player[0].money_get);//如果填了name 可以把名字列印出來

    return 0;

}

C語言類似微信紅包思路,怎麼寫這個?

首先,我說一下大概思路,取隨機數應該是要用到演算法,C語言庫裡面應該有這個函數,可以讓取的數在一個範圍波動,但是你這個要時刻留意隨機數總和要小於N(金額總數),加上最後一個時剛好等於N。先輸入總額度N,以及總的人數a,然後循環輸入人數a次產生a個隨機數,保證它們之和等於N(這裡應該還需要定義一個臨時變數,用來統計金額),程序中不需要指針,可以定義一個數組,如果是和微信紅包類似,有小數,那就定一個float型的。

給你一個鏈接,是C語言如何產生隨機數的網頁鏈接

C語言編程:求一段發紅包的代碼。(隨機數,能規定紅包總錢數總人數,每個人拿到的錢不為0)

#includestdio.h

#includetime.h

#includestdlib.h

int main(void)

{

float total;

printf(“輸入總錢數:\n”);

scanf(“%f”,total);

int num;

printf(“輸入紅包數量:\n”);

scanf(“%d”,num);

float min=0.01;

float safe_total;

float money;

int i;

srand((unsigned)time(NULL));

for(i=1;inum;i++){

safe_total=(total-(num-i)*min)/(num-1);

money=(float)(rand()%((int)(safe_total*100)))/100+min;

total=total-money;

printf(“紅包%2d: %.2f元,餘額:%.2f元\n”,i,money,total);

}

printf(“紅包%2d: %.2f元,餘額:0.00元\n”,num,total);

return 0;

}

C語言紅包代碼

#includestdio.h

#includestdlib.h

#includetime.h

  main()

{

int i,n;

float a[100],all;

srand(time(NULL)); 

printf(“請輸入紅包金額:”);

scanf(“%f”,all);

printf(“請輸入紅包個數:”);

scanf(“%d”,n);

srand((unsigned)time(0));

for(i=1;in;i)

{

a[i]=(float)rand()/RAND_MAX*all;

if(a[i]0 )

{

all-=a[i];

printf(“%f\n”,a[i]);

i++;

}

}

printf(“%f\n”,all);

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/285170.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-22 15:43
下一篇 2024-12-22 15:43

相關推薦

  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演著非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • Python語言由荷蘭人為中心的全能編程開發工程師

    Python語言是一種高級語言,很多編程開發工程師都喜歡使用Python語言進行開發。Python語言的創始人是荷蘭人Guido van Rossum,他在1989年聖誕節期間開始…

    編程 2025-04-28
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28
  • Python語言實現人名最多數統計

    本文將從幾個方面詳細介紹Python語言實現人名最多數統計的方法和應用。 一、Python實現人名最多數統計的基礎 1、首先,我們需要了解Python語言的一些基礎知識,如列表、字…

    編程 2025-04-28
  • Python作為中心語言,在編程中取代C語言的優勢和挑戰

    Python一直以其簡單易懂的語法和高效的編碼環境而著名。然而,它最近的發展趨勢表明Python的使用範圍已經從腳本語言擴展到了從Web應用到機器學習等廣泛的開發領域。與此同時,C…

    編程 2025-04-28
  • Python基礎語言

    Python作為一種高級編程語言擁有簡潔優雅的語法。在本文中,我們將從多個方面探究Python基礎語言的特點以及使用技巧。 一、數據類型 Python基礎數據類型包括整數、浮點數、…

    編程 2025-04-28

發表回復

登錄後才能評論