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/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

发表回复

登录后才能评论