7-8 报销

年底,报销都挤在一堆,财务忙得不可开交。每个报销表包括姓名,各项费用的金额。对于每个报销单,这里规定按如下要求处理:

  • 金额高的优先处理;
  • 若金额相等时,则姓名字典序小的优先处理;
  • 若金额和姓名都相等,则按报销单来得早的优先处理。

请帮财务排好报销单的处理顺序。

输入格式:

首先输入一个整数T,表示测试数据的组数,然后是T组测试数据。对于每组测试数据,先输入2个正整数n、m(1≤n≤20,1≤m≤10),然后是n行输入,第i行先输入第i个报销单上的姓名(长度不超过10个字符,且只包含大小写英文字母),然后再输入m个整数,表示第i个报销单上的各项费用,数据之间都以一个空格分隔,第i行输入的编号为i,编号越小表示来得越早。

输出格式:

对于每组测试,输出n+1行,第一行是“Case k:”,其中k表示是第k组测试;对于后面的n行,每行包含一个按规定要求排好序之后的报销单信息,包括:费用排名(从1开始,若费用相同,则排名也相同,否则排名为排序后的序号)、原编号、姓名、总费用,每两个数据之间留一个空格。每两组测试数据之间留一个空行。

输入样例:

2
4 5
Tom 100 900 200 100 700
Jack 1000 400 500 50 50
Sara 700 100 200 1000 300
Iris 100 900 200 100 600
3 2
Tom 2600 400
Jack 3800 800
Mary 3100 100

输出样例:

Case 1:
1 3 Sara 2300
2 2 Jack 2000
2 1 Tom 2000
4 4 Iris 1900

Case 2:
1 2 Jack 4600
2 3 Mary 3200
3 1 Tom 3000

个人思路:

 

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
struct MyStruct
{
    int no;
	char name[100];
	int sum;
};
int cmp(const void* p1, const void* p2)
{
	if (((struct MyStruct*)p1)->sum != ((struct MyStruct*)p2)->sum)
	{
		return ((struct MyStruct*)p2)->sum - ((struct MyStruct*)p1)->sum;
	}
	else
	{
		return strcmp(((struct MyStruct*)p1)->name, ((struct MyStruct*)p2)->name);

	}

}
int main()
{
	int n;
	scanf("%d", &n);

 int No=0;
	while (n--)
	{
        int count=1;
		int x, y;
		int sum = 0;
		scanf("%d %d", &x, &y);
		int t = x;
		struct MyStruct arr[t];
		for (int i = 0; i < x; i++)
		{
			sum = 0;
            arr[i].no=i+1;
			scanf("%s", arr[i].name);
			int a;
			for (int j = 0; j < y; j++)
			{
				scanf("%d", &a);
				sum = sum + a;
			}
			arr[i].sum = sum;
		}

		qsort(arr, t, sizeof(arr[0]), cmp);
        No++;
        printf("Case %d:\n",No);
        
		for (int k = 0; k < t; k++)
		{
            if(arr[k].sum!=arr[k-1].sum)
            {
                count=k+1;
            }
			printf("%d %d %s %d\n",count, arr[k].no,arr[k].name, arr[k].sum);
		}
        if(n!=0)
        {

            printf("\n");
        }
	}

	return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/235019.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

call,apply,bind

1.这三个方法都能改变this的指向 2.代码实战 let obj1 {name: "小红",age: 20,fn: function () {console.log(当前this的指向,this);console.log(我叫${this.name},今年${this.age}岁);},};obj1.fn(); 这里的代码,obj1是一个对象,里面有属性name和age 正常情况下我…

深入理解网络中断:原理与应用

&#x1f52d; 嗨&#xff0c;您好 &#x1f44b; 我是 vnjohn&#xff0c;在互联网企业担任 Java 开发&#xff0c;CSDN 优质创作者 &#x1f4d6; 推荐专栏&#xff1a;Spring、MySQL、Nacos、Java&#xff0c;后续其他专栏会持续优化更新迭代 &#x1f332;文章所在专栏&…

大数据技术8:StarRocks极速全场景MPP数据库

前言&#xff1a;StarRocks原名DorisDB&#xff0c;是新一代极速全场景MPP数据库。StarRocks 是 Apache Doris 的 Fork 版本。StarRocks 连接的多种源。一是通过这个 CDC 或者说通过这个 ETL 的方式去灌到这个 StarRocks 里面&#xff1b;二是还可以去直接的和这些老的 kafka 或…

C++ 模拟实现vector

目录 一、定义 二、模拟实现 1、无参初始化 2、size&capacity 3、reserve 4、push_back 5、迭代器 6、empty 7、pop_back 8、operator[ ] 9、resize 10、insert 迭代器失效问题 11、erase 12、带参初始化 13、迭代器初始化 14、析构函数 完整版代码 一、…

MyBatis 四大核心组件之 Executor 源码解析

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…

【IDEA】IntelliJ IDEA中进行Git版本控制

本篇文章主要记录一下自己在IntelliJ IDEA上使用git的操作&#xff0c;一个新项目如何使用git进行版本控制。文章使用的IDEA版本 IntelliJ IDEA Community Edition 2023.3&#xff0c;远程仓库为https://gitee.com/ 1.配置Git&#xff08;File>Settings&#xff09; 2.去Git…

Leetcode刷题详解——仅仅反转字母

1. 题目链接&#xff1a;917. 仅仅反转字母 2. 题目描述&#xff1a; 给你一个字符串 s &#xff0c;根据下述规则反转字符串&#xff1a; 所有非英文字母保留在原有位置。所有英文字母&#xff08;小写或大写&#xff09;位置反转。 返回反转后的 s 。 示例 1&#xff1a; 输…

docker-ubuntu中基于keepalived+niginx模拟主从热备完整过程

一、环境准备 &#x1f517;在Ubuntu中安装docker 二、主机 1、环境搭建 1.1 镜像拉取 docker pull ubuntu:16.041.2 创建网桥 docker network create -dbridge --subnet192.168.126.0/24 br11.3 启动容器 docker run -it --name ubuntu-1 --privileged -v /home/vac/l…

PPP协议概述与实验示例

PPP协议概述与实验示例 概述 PPP&#xff08;Point-to-Point Protocol&#xff09;是一种用于在点对点连接上传输多协议数据包的标准方法。它已经成为最广泛使用的互联网接入数据链路层协议&#xff0c;可以与各种技术结合&#xff0c;如ADSL、LAN等&#xff0c;实现宽带接入…

【rabbitMQ】rabbitMQ控制台模拟收发消息

目录 1.新建队列 2.交换机绑定队列 3.查看消息是否到达队列 总结&#xff1a; 1.新建队列 2.交换机绑定队列 点击amq.fonout 3.查看消息是否到达队列 总结&#xff1a; 生产者&#xff08;publisher&#xff09;发送消息&#xff0c;先到达交换机&#xff0c;再到队列&…

phpstudy小皮(PHP集成环境)下载及使用

下载 https://www.xp.cn/download.html直接官网下载即可&#xff0c;下载完解压是个.exe程序&#xff0c;直接点击安装就可以&#xff0c;它会自动在D盘目录为D:\phpstudy_pro 使用 phpMyAdmin是集成的数据库可视化&#xff0c;这里需要下载一下&#xff0c;在软件管理-》网站程…

linux逻辑卷LVM

创建LVMVG管理LV扩容 6.2.6 逻辑卷LVM LVM是Logical Volume Manager 的简称&#xff0c;译为逻辑卷管理&#xff0c;它是Linux下对硬盘分区的一种管理机制。LVM适合于管理大存储设备&#xff0c;并允许用户动态调整文件系统的大小。此外&#xff0c;LVM的快照功能可以帮助我们快…

第九天:信息打点-CDN绕过篇amp;漏洞回链amp;接口探针amp;全网扫描amp;反向邮件

信息打点-CDN绕过篇 cdn绕过文章&#xff1a;https://www.cnblogs.com/qiudabai/p/9763739.html 一、CDN-知识点 1、常见访问过程 1、没有CDN情况下传统访问&#xff1a;用户访问域名-解析服务器IP–>访问目标主机 2.普通CDN&#xff1a;用户访问域名–>CDN节点–>…

设计模式-外观模式

设计模式专栏 模式介绍模式特点应用场景外观模式和里氏替换原则的区别代码示例Java实现外观模式python实现外观模式 外观模式在spring中的应用 模式介绍 外观模式&#xff08;Facade Pattern&#xff09;是一种结构性设计模式&#xff0c;它隐藏了系统的复杂性&#xff0c;并向…

[后端卷前端2]

绑定class 为什么需要样式绑定呢? 因为有些样式我们希望能够动态展示 看下面的例子: <template><div><p :class"{active:modifyFlag}">class样式绑定</p></div> </template><script>export default {name: "goo…

Docker中的常见命令

Docker开机自启 systemctl enable dockerDocker容器开机自启 docker update --restartalways [容器名/容器id]案例&#xff1a;docker操作nginx 拉取Nginx镜像 docker pull nginx查看镜像 docker images创建并运行Nginx容器 docker run -d --name nginx -p 80:80 nginx查…

(NeRF学习)3D Gaussian Splatting Instant-NGP环境配置

学习参考&#xff1a; 3D gaussian splatting 安装步骤拆解23.9月3D Gaussian Splatting入门指南【五分钟学会渲染自己的NeRF模型&#xff0c;有手就行&#xff01;】 三维重建instant-ngp环境部署与colmap、ffmpeg的脚本参数使用 一、3D Gaussian Splatting &#xff08;一&…

airserver mac 7.27官方破解版2024最新安装激活图文教程

airserver mac 7.27官方破解版是一款好用的airplay投屏工具&#xff0c;可以轻松将ios荧幕镜像&#xff08;airplay&#xff09;至mac上&#xff0c;在mac平台上实现视频、音频、幻灯片等文件资源的接收及投放演示操作&#xff0c;解决iphone或ipad的屏幕录像问题&#xff0c;满…

【实战教程】PHP如何轻松对接阿里云直播?

1. 配置阿里云直播的推流地址和播放地址 使用阿里云直播功能前&#xff0c;首先需要在阿里云控制台中创建直播应用&#xff0c;然后获取推流地址和播放地址。 推流地址一般格式为&#xff1a; rtmp://{Domain}/{AppName}/{StreamName}?auth_key{AuthKey}-{Timestamp}-{Rand…

[虚拟机]使用VM打开虚拟机电脑重启解决方案。

问题&#xff1a;打开虚拟机点击启动后&#xff0c;电脑会自动重启。&#xff08;WINDOWS10 20版本&#xff09; 解决步骤&#xff1a; 1、对Windows功能进行操作。 上图三个启用。 上图一个取消。 再次打开后&#xff0c;不报警&#xff0c;显示下图问题&#xff1a; 继续解…