输入一组数据,将它们按照从大到小的顺序输出,并给出每个数据所对应的原始输入顺序

输入一组数据,将它们按照从大到小的顺序输出,并给出每个数据所对应的原始输入顺序(利用结构类型,题目来源:C语言程序设计第三版)

#include<stdio.h>
struct data//定义结构体数据 
{
	double m;
	int o;
};
int main()
{
	struct data a[100];
	int i,n,j,k,w;
	double t;
	printf("请输入需要处理的数据个数:\n");
	scanf("%d",&n);//输入处理数据个数 
	printf("请输入数据:\n");
	for(i=0;i<n;i++)
	{
	scanf("%lf",&a[i].m);
	a[i].o=i+1;//令处理数据个数的顺序 
	}
	for(i=0;i<n-1;i++)
	{
	k=i;
	for(j=i+1;j<n;j++)	
	if(a[j].m>a[k].m)
	{
	t=a[j].m;
	a[j].m=a[k].m;
	a[k].m=t;
	w=a[j].o;
	a[j].o=a[k].o;
	a[k].o=w;
	}
	}
	for(j=0;j<n;j++)
	printf("%4.2lf %d\n",a[j].m,a[j].o);
	return 0;
}
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 首先,您可以使用任何编程语言实现这个功能。 以下是一个简单的 Python 示例: ``` n = int(input("请输入整数 n: ")) numbers = [] for i in range(n): numbers.append(int(input("请输入整数: "))) numbers.sort(key=lambda x: abs(x)) print("排序结果:", numbers) ``` 在这个代码中,首先从用户输入整数 n,然后通过循环从用户输入 n 个整数并将其存储在列表 numbers 中。最后,使用 sort 函数对列表进行排序,排序规则通过 key 参数设置为绝对值。 ### 回答2: 首先,我们输入一个整数n,表示待输入的整数个数。 接着,我们输入n个整数,这些整数可以是正数、负数或零。 然后,我们对这n个整数按照其绝对值从小到大进行排序。 排序的一种简单方法是使用冒泡排序算法。首先,我们设置一个循环,每次循环将相邻两个数字进行比较,如果前一个数字的绝对值大于后一个数字的绝对值,则交换它们的位置。 我们需要进行n-1次循环,每次循环可以确定一个数字的最终位置。在每次循环中,我们需要遍历整个数组,并进行比较交换操作。每次遍历时,从第一个数字开始,将相邻两个数字进行比较,并按照上述规则进行交换,直到遍历到倒数第二个数字为止。 当所有的循环结束后,数组中的数字就按照绝对值从小到大排列好了。 最后,我们按顺序输出排序结果。 例如,假设输入为n=5,整数数组为[-3, 2, 0, -1, 4]。我们可以按照以下步骤进行排序: 1. 第一次循环:[-3, 2, 0, -1, 4],-3和2交换位置,得到[2, -3, 0, -1, 4] 2. 第二次循环:[2, -3, 0, -1, 4],2和0交换位置,得到[0, -3, 2, -1, 4] 3. 第三次循环:[0, -3, 2, -1, 4],-3和2交换位置,得到[0, 2, -3, -1, 4] 4. 第四次循环:[0, 2, -3, -1, 4],-1和4交换位置,得到[0, 2, -3, 4, -1] 排序结果为[0, 2, -3, 4, -1]。 ### 回答3: 首先,我们先输入一个整数n,表示接下来将要输入的整数的个数。然后,我们按照输入个数n,进行n次整数的输入。这n个整数可以是任意的整数,可以是负数、零或者正数。 接着,我们需要进行排序,按照绝对值从小到大的顺序进行排序。在排序之前,我们需要先计算每个输入整数的绝对值,然后再进行排序。 具体的排序方法可以是使用冒泡排序、插入排序或者快速排序等。以下是一个使用冒泡排序的方法进行绝对值排序的演示过程: 假设输入的n个整数为arr[],其中arr[0]、arr[1]、...、arr[n-1]表示第1个到第n个输入整数。 1. 遍历n次,对每个整数arr[i]求绝对值,得到abs_arr[i]。 2. 使用冒泡排序对abs_arr[]进行排序,从小到大。 a. 依次比较相邻的两个元素,如果前一个元素大于后一个元素,则交换它们的位置。 b. 经过一轮遍历后,最大的元素会被移到最后。 c. 重复n次以上步骤,直到所有元素都按照从小到大的顺序排列。 3. 根据排序后的abs_arr[]找到对应原始整数arr[]的位置,输出排序结果。 a. 遍历abs_arr[],找到在原始数组arr[]中对应的位置。 b. 输出对应位置上的arr[]的元素即可。 最后,根据以上步骤进行操作,就可以得到按照绝对值从小到大排序后的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值