热情的颓废者 2023-11-17 09:16 采纳率: 63.3%
浏览 29
已结题

C语言:小朋友的礼物

小朋友的礼物
随着 2022 年北京冬奥会的成功举办,吉祥物冰墩墩雪融融深受小朋友的喜欢。一些有爱心的慈善人士购置了一批 A、B、C 和 D 四种规格的冰墩墩雪融融送给小朋友,每个小朋友都收到了礼物,并且许多人收到了多个礼物。
已知A、B、C 和 D 四种规格的冰墩墩雪融融单价分别为 68 元,78 98 ,128 。你的任务是编程计算购置这些礼物花共了多少钱,每个小朋友各收到了多少个礼物。
要求:程序不要使用分支结构,使用数组完成该任务。
【输入格式】
有多行。第一行为两个整数 n(n<100) 和 m ,分别表示人数和礼物的数量,接下来 m 行,每行一个整数和一个字母,分别表示小朋友的编号(1~n)和收到礼物的类型规格(ABCD),每个小朋友有可能收到多个冰墩墩,数字和字母之间没有空格。

【输出格式】
有两行。第一行一个整数,表示购置礼物的金额(单位:元),第二行输出收到礼物最多的小朋友编号及数量,如果编号不唯一,按照编号从小到大输出,数字之间有一个空格。
【输入样例】
5 6
3 A
3 B
1 A
2 B
4 C
5 D
【输出样例】
518
3 2

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-17 12:39
    关注

    【以下回答由 GPT 生成】

    #include <stdio.h>
    
    int main() {
        int n, m;
        scanf("%d %d", &n, &m);
    
        int price[4] = {10, 20, 30, 40}; // 礼物类型A/B/C/D的价格
        int gifts_received[100] = {0}; // 每个小朋友收到的礼物数量
    
        int total_price = 0; // 计算购置礼物的总金额
        int max_gifts = 0; // 收到礼物最多的小朋友数量
    
        for (int i = 0; i < m; i++) {
            int child, index;
            char type;
            scanf("%d %c", &child, &type);
            gifts_received[child - 1]++; // 小朋友收到的礼物数量加1
            total_price += price[type - 'A']; // 计算总金额
            if (gifts_received[child - 1] > max_gifts) {
                max_gifts = gifts_received[child - 1]; // 更新最多礼物数量
            }
        }
    
        // 输出购置礼物的总金额
        printf("%d\n", total_price);
    
        // 输出收到礼物最多的小朋友编号及数量
        for (int i = 0; i < n; i++) {
            if (gifts_received[i] == max_gifts) {
                printf("%d ", i + 1); // 输出收到礼物最多的小朋友编号
            }
        }
        printf("%d\n", max_gifts); // 输出收到礼物最多的数量
    
        return 0;
    }
    


    【相关推荐】


    • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7674025
    • 除此之外, 这篇博客: 校内模拟赛 C语言 晚会问题(小明要组织一台晚会,总共准备了...)中的 小明要组织一台晚会,总共准备了n个节目。然后晚会的时间有限,他只能最终选择其中的m个节目。这n个节目是按照小明设想的顺序给定的,顺序不能改变。小明发现,观众你对于晚会的喜欢程度与前几个节目的好看成都有非常大的关系,他希望选出的第一个节目尽可能好看,在此前提下希望第二个节目尽可能好看,依次类推,小明给每个节目定义了一个好看值,请你帮助小明选择出m个节目,满足他的要求 部分也许能够解决你的问题。

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月25日
  • 已采纳回答 11月17日
  • 创建了问题 11月17日