“第四十二天”

news2025/7/13 4:58:39

 

这个,之前用的b去存储a的总和和排名,后来在比较的过程中,只改变的b的值,却没有改变a的值,但在比较语文成绩的时候用的还是a,这个时候a和b同样是第i个对应的可能不是同一个对象了

,因为上面b的值可能改变了,现在的第i个b可能是原来第i+1,i-1个,都有可能,所以比较结果错误。

#include<stdio.h>
#include<stdlib.h>

int main()
{
	int n = 0;
	scanf("%d", &n);
	int(*a)[3] = (int*)malloc(sizeof(int) * 3 * n);
	int i = 0;
	int(*b)[2] = (int*)malloc(sizeof(int) * 2*n);
	for (i = 0; i < n; i++)
	{
		scanf("%d %d %d", &a[i][0], &a[i][1], &a[i][2]);
		b[i][0] = a[i][0] + a[i][1] + a[i][2];
		b[i][1] = i+1;
	}
	for (i = 0; i < n; i++)
	{
		int max = 0;
		int c = 0;
		for (int j = 0; j < n - 1 - i; j++)
		{
			if (b[j][0] < b[j + 1][0])
			{
				max = b[j + 1][0];
				b[j + 1][0] = b[j][0];
				b[j][0] = max;
				c = b[j + 1][1];
				b[j + 1][1] = b[j][1];
				b[j][1] = c;
			}
			else if(b[j][0] == b[j + 1][0])
			{
				if (a[j][0] < a[j + 1][0])
				{
					c = b[j + 1][1];
					b[j + 1][1] = b[j][1];
					b[j][1] = c;
				}
				else if(a[j][0] == a[j + 1][0])
					if (b[j + 1][1] < b[j][1])
					{
						c = b[j + 1][1];
						b[j + 1][1] = b[j][1];
						b[j][1] = c;
					}
			}
		}
	}
	for (i = 0; i < 5; i++)
	{
		printf("%d %d\n", b[i][1], b[i][0]);
	}
	free(a);
	a = NULL;
	free(b);
	b = NULL;
	return 0;
}

 这个是正确的,不过感觉这样还是很麻烦

#include<stdio.h>
#include<stdlib.h>
struct Stu
{
	int g[3];
	int sum;
	int n;
};
int main()
{
	int n = 0;
	scanf("%d", &n);
	struct Stu* a = (struct Stu*)malloc(sizeof(struct Stu) * n);
	struct Stu r;
	int i = 0;
	for (i = 0; i < n; i++)
	{
		scanf("%d %d %d", &a[i].g[0], &a[i].g[1], &a[i].g[2]);
		a[i].sum = a[i].g[0] + a[i].g[1] + a[i].g[2];
		a[i].n=i+1;
	}
	for (i = 0; i < n; i++)
	{
		int max = 0;
		int c = 0;
		for (int j = 0; j < n - 1 - i; j++)
		{
			if (a[j].sum < a[j+1].sum)
			{
				r = a[j];
				a[j] = a[j + 1];
				a[j + 1] = r;
			}
			else if(a[j].sum == a[j + 1].sum)
			{
				if (a[j].g[0] < a[j + 1].g[0])
				{
					r = a[j];
					a[j] = a[j + 1];
					a[j + 1] = r;
				}
				else if(a[j].g[0] == a[j + 1].g[0])
					if (a[j].n>a[j+1].n)
					{
						r = a[j];
						a[j] = a[j + 1];
						a[j + 1] = r;
					}
			}
		}
	}
	for (i = 0; i < 5; i++)
	{
		printf("%d %d\n", a[i].n,a[i].sum);
	}
	free(a);
	a = NULL;
	return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux C语言

一、基础知识 &#xff08;一&#xff09;冯诺依曼体系 1、存储器&#xff1a;内存 存储程序的思想&#xff1a;按照存储器中指令的顺序 2、存储器的分类 1&#xff09;主存&#xff1a;内存&#xff08;C盘&#xff09; 2&#xff09;外存 3&#xff09;寄存器是cpu内部…

【Java基础面试十九】、构造方法能不能重写?

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;构造方法能不能重写&…

MyBatisPlus(二十)防全表更新与删除

说明 针对 update 和 delete 语句&#xff0c;阻止恶意的全表更新和全表删除。 实现方式 配置BlockAttackInnerInterceptor拦截器 代码 package com.example.core.config;import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.p…

Godot2D角色导航-自动寻路教程(Godot获取导航路径)

文章目录 开始准备获取路径全局点坐标 开始准备 首先创建一个导航场景&#xff0c;具体内容参考下列文章&#xff1a; Godot实现角色随鼠标移动 然后我们需要设置它的导航目标位置&#xff0c;具体关于位置的讲解在下面这个文章&#xff1a; Godot设置导航代理的目标位置 获取…

Python---if选择判断结构、嵌套结构(if elif else)

1、if选择判断结构作用 if 英 /ɪf/ conj. &#xff08;表条件&#xff09;如果&#xff1b;&#xff08;表假设&#xff09;要是&#xff0c;假如&#xff1b;无论何时&#xff1b;虽然&#xff0c;即使&#xff1b;&#xff08;用于间接疑问&#xff09;是否&#xff1b…

PCI设备与UIO驱动

随着网络的高速发展,对网络的性能要求也越来越高,DPDK框架是目前的一种加速网络IO的解决方案之一,也是最为流行的一套方案。DPDK通过bypass内核协议栈与内核驱动,将驱动的工作从内核态移至用户态,并利用polling mode的线程工作模式加速网络I/O使得网络IO性能出现大幅度的增…

Tuxera NTFS2024最新永久版下载和安装

要使用Tuxera NTFS for Mac&#xff0c;你需要先下载和安装Tuxera NTFS for Mac驱动器&#xff0c;然后按照以下步骤操作&#xff1a; 1、下载和安装Tuxera NTFS for Mac 免费下载Tuxera NTFS for Mac驱动器的最新版本。下载完成后&#xff0c;双击DMG文件并按照提示安装即可…

攀岩安全带,儿童攀岩安全带合规标准是什么?如何办理?

攀岩安全带 本政策适用于主要用于攀岩或登山活动的安全带。攀岩安全带是一种装备&#xff0c;可穿戴在攀岩者或登山者的腰部和大腿处。攀岩安全带为绳子提供了一个连接点&#xff0c;并提供一种手段&#xff0c;以便在攀登、休息、绕绳下降或跌落的过程中为攀登者身体提供支撑…

2023年10月wxid转微信号方法

在9月份tx做了一次调整&#xff0c;以前很多wxid转微信号的办法都失效了。 今天分析了一下微信。捣鼓了一下午。现在已经实现了wxid转微信号。不管对方是否在群里&#xff0c;是否是你的好友 都能转。一分钟出60条左右。 我们先创建一个文本文件&#xff0c;将要转换wxid 放进…

Vue2使用定时器和闭包实现防抖和节流函数。将函数放入util.js中,供具体功能在methods中调用

Vue2使用定时器和闭包实现防抖和节流函数。将函数放入util.js中&#xff0c;供具体功能在methods中调用。<br/ 参考文档&#xff1a; 如何在Vue中优雅的使用防抖节流人类高质量JS防抖与节流机制Vue项目中使用防抖和节流vue2使用lodash中的防抖&#xff08;debounce&#xff…

现货黄金操作建议

如果您想得到更好的现货黄金操作建议&#xff0c;那就应该读读Jack Schwager的经典交易著作是《市场奇才&#xff1a;顶级交易者访谈》。这本书1989年首次出版&#xff0c;当中收录了对美国一些传奇交易者的访谈&#xff0c;当中的一些建议不但有用&#xff0c;而且经得起的时间…

Win10更新错误代码0x800f081f的解决方法

在Win10电脑中&#xff0c;用户点击更新系统版本&#xff0c;却遇到了更新错误的情况&#xff0c;还有0x800f081f错误提示。如果出现这样的情况&#xff0c;用户就无法正常完成Win10系统的更新了&#xff0c;接下来小编给大家介绍两种简单有效的解决方法&#xff0c;解决后大家…

WebGPU入门一

1 WebGPU学习开发环境配置 WebGPU的环境配置比较简单&#xff0c;不需要vite或webpack配置一个复杂的开发环境&#xff0c;直接使用.html文件即可。 1.1 支持WebGPU的浏览器 Chrome 113 beta测试版开始默认支持WebGPU。 1.2 index.html文件 创建index.html文件&#xff0c…

uni-app:对数组对象进行以具体某一项的分类处理

一、原始数据 这里定义为五个数组&#xff0c;种类product有aaa,bbb两种 原始数据在data中进行定义 res: {"success": true,"devices": [{no: 0,product: aaa,alias: "设备1",assign: [["a1", "a2", "a3"],[&q…

论文解析-moETM

论文解析-moETM 参考亮点动机发展现状现存问题 功能方法Encoder改进Decoder改进 评价指标生物保守性批次效应移除 实验设置结果多组学数据整合cell-topic mixture可解释性组学翻译性能评估RNA转录本、表面蛋白、染色质可及域调控关系研究1. 验证同一主题下&#xff0c;top gene…

Python武器库开发-基础篇(二)

基础篇(二) if 语句 编程时经常需要检查一系列条件&#xff0c;并据此决定采取什么措施。在Python中&#xff0c;if 语句让你能够检查程序的当前状态&#xff0c;并据此采取相应的措施 下面是一个简短的示例&#xff0c;演示了如何使用if 语句来正确地处理特殊情形。假设你有…

cmd进程简单操作指令

dir 查询当前路径和子路径 start空格加自己的exe程序&#xff0c;可运行程序。 taskkill /?可以执行很多&#xff0c;通常用于结束程序。 taskkill /f /im qq.exe 启动nginx.exe 查看运行的进程有哪些 选择结束nginx.exe

手写一个PrattParser基本运算解析器3: 基于Swift的PrattParser的项目概述

点击查看 基于Swift的PrattParser项目 PrattParser项目概述 前段时间一直想着手恶补 编译原理 的相关知识, 一开始打算直接读大学的 编译原理, 虽然内容丰富, 但是着实抽象难懂. 无意间看到B站的熊爷关于普拉特解析器相关内容, 感觉是一个非常好的切入点.所以就写了基于Swift版…

试着写几个opencv的程序

一、认识opencv OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源计算机视觉库&#xff0c;旨在提供丰富的图像处理和计算机视觉功能&#xff0c;以帮助开发者构建视觉应用程序。OpenCV最初由英特尔开发&#xff0c;现在由社区维护和支持。它支持…