查看: 31|回复: 0

    C语言,编写自定义函数,实现红包分配算法

    [复制链接]

    394

    主题

    403

    帖子

    953

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    953
    发表于 2023-11-13 10:43:28 | 显示全部楼层 |阅读模式
    C语言,编写自定义函数void hongbao(int amount,int renshu),实现红包分配算法,在函数中输出每个人分配到的红包金额。
    C语言,编写自定义函数void hongbao(int amount,int renshu),实现红包分配算法,在函数中输出每个人分配到的红包金额。amount,表示红包总金额,renshu表示分配总人数。编写main函数测试,并且在main函数中,输入红包总金额和分配总人数。

    以下是使用C语言编写的自定义函数 void hongbao(int amount, int renshu) ,用于实现红包分配算法,并在函数中输出每个人分配到的红包金额。在 main 函数中,我们将测试该函数,并从用户输入中获取红包总金额和分配总人数。

    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. #include <time.h>
    4. void hongbao(int amount, int renshu) {
    5.     int* hongbaoArr = (int*)malloc(renshu * sizeof(int));  // 分配存储红包金额的数组
    6.     int remainAmount = amount;  // 剩余红包金额
    7.     int remainRenshu = renshu;  // 剩余分配人数
    8.      // 初始化随机数种子
    9.     srand(time(0));
    10.      // 分配红包金额
    11.     for (int i = 0; i < renshu - 1; i++) {
    12.         int randomAmount = rand() % (remainAmount / remainRenshu * 2 - 1) + 1;  // 随机生成红包金额
    13.         hongbaoArr[i] = randomAmount;
    14.         remainAmount -= randomAmount;
    15.         remainRenshu--;
    16.     }
    17.     hongbaoArr[renshu - 1] = remainAmount;  // 最后一个人获得剩余的红包金额
    18.      // 输出每个人分配到的红包金额
    19.     printf("每个人分配到的红包金额:\n");
    20.     for (int i = 0; i < renshu; i++) {
    21.         printf("第%d个人:%d\n", i + 1, hongbaoArr[i]);
    22.     }
    23.      free(hongbaoArr);  // 释放动态分配的内存
    24. }
    25. int main() {
    26.     int amount, renshu;
    27.      printf("请输入红包总金额:");
    28.     scanf("%d", &amount);
    29.      printf("请输入分配总人数:");
    30.     scanf("%d", &renshu);
    31.      hongbao(amount, renshu);
    32.      return 0;
    33. }
    复制代码
    在 hongbao 函数中,我们使用随机数生成算法来分配红包金额。首先,我们动态分配一个整型数组来存储每个人分配到的红包金额。然后,通过循环迭代,每次生成一个随机金额并将其存储在数组中,同时更新剩余的红包金额和分配人数。最后,输出每个人分配到的红包金额。 在 main 函数中,我们从用户输入中获取红包总金额和分配总人数,并调用 hongbao 函数来进行红包分配。




    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    免责声明:
    1、转载或引用本网站内容须注明原网址,并标明本网站网址“源码资源网”
    2、转载或引用本网站中的署名文章,请按规定向原作者支付稿酬
    3、对于不当转载或引用本网站内容而引起的民事纷争、行政处理或其他损失,本网站不承担责任
    4、对不遵守本声明或其他违法、恶意使用本网站内容者,本网站保留追究其法律责任的权利
    5、资源部分来自网络,不保证资源的完整性,仅供学习研究,如需运营请购买正版,如有侵权请联系客服删除
    6、本站所有资源不带技术支持,下载资源请24小时内删除,如用于违法用途,或者商业用途,一律用于者承担

    QQ|手机版|小黑屋|依星源码资源网-分享编程干货的网站 ( 鲁ICP备2021043233号-3 )

    GMT+8, 2023-12-11 23:08

    邮箱:312337667@qq.com 客服QQ:312337667(工作时间:7:00~23:00)

    © Powered by Net188.com X3.4

    快速回复 返回顶部 返回列表