zoukankan      html  css  js  c++  java
  • 排序问题

    排序问题

    Time Limit: 1000MS Memory limit: 65536K

    题目描述

    输入10个整数,将它们从小到大排序后输出,并给出现在每个元素在原来序列中的位置。

    输入

    输入数据有一行,包含10个整数,用空格分开。

    输出

    输出数据有两行,第一行为排序后的序列,第二行为排序后各个元素在原来序列中的位置。

    示例输入

    1 2 3 5 4 6 8 9 10 7

    示例输出

    1 2 3 4 5 6 7 8 9 10
    1 2 3 5 4 6 10 7 8 9

    源码(用结构体):

    #include <stdio.h>
    struct data
    {
    	int n;//数值
    	int cur;//位置
    };
    
    int main()
    {
    	struct data arr[10];//C语言中必须用要写struct。。不然GCC是不会通过的。。
    	struct data t;
    	int i,j;
    	for(i=0; i<10; i++)
    	{
    		scanf("%d",&arr[i]);//输入数值
    		arr[i].cur=i+1;//保持位置序号
    	}
    	for(i=0; i<10-1; i++)
    	{
    		for(j=0; j<10-i-1; j++)
    		{
    			if(arr[j].n > arr[j+1].n)
    			{	
    				t=arr[j];
    				arr[j]=arr[j+1];
    				arr[j+1]=t;
    			}
    		}
    	}
    	for(i=0; i<10; i++)
    	{
    		if( i != 0 )
    			printf(" %d",arr[i].n);
    		else
    			printf("%d",arr[i].n);
    	}
    	putchar('\n');
    	for(i=0; i<10; i++)
    	{
    		if(i != 0)
    			printf(" %d",arr[i].cur);
    		else
    			printf("%d",arr[i].cur);
    	}
    	putchar('\n');
    	return 0;
    }
    


    或者(用两个数组):

    #include <stdio.h>
    
    int main()
    {
    	int arr1[10],arr2[10];//arr1[10]用来存储数值,arr2[10]用来存储位置
    	int t;
    	int i,j;
    	for(i=0; i<10; i++)
    	{
    		scanf("%d",&arr1[i]);//输入数值
    		arr2[i]=i+1;//保持位置序号
    	}
    	for(i=0; i<10-1; i++)//冒泡
    	{
    		for(j=0; j<10-i-1; j++)
    		{
    			if(arr1[j] > arr1[j+1])
    			{	
    				t=arr1[j];
    				arr1[j]=arr1[j+1];
    				arr1[j+1]=t;
    
    				t=arr2[j];
    				arr2[j]=arr2[j+1];
    				arr2[j+1]=t;
    			}
    		}
    	}
    	for(i=0; i<10; i++)//输出
    	{
    		if( i != 0 )//AC对输出格式好像非常严格。。。
    			printf(" %d",arr1[i]);
    		else
    			printf("%d",arr1[i]);
    	}
    	putchar('\n');
    	for(i=0; i<10; i++)
    	{
    		if(i != 0)
    			printf(" %d",arr2[i]);
    		else
    			printf("%d",arr2[i]);
    	}
    	putchar('\n');
    	return 0;
    }
    






  • 相关阅读:
    决策树简介
    机器学习一百天-day7/11-KNN
    机器学习100天-day4,5,6,8逻辑回归
    机器学习一百天-day3多元线性回归及虚拟变量陷阱分析
    机器学习100天-day2简单线性回归
    机器学习100天-day1数据预处理
    sklearn.preprocessing.Imputer
    vue echart 中国地图 疫情图
    一周笔记
    js基础操作与方法
  • 原文地址:https://www.cnblogs.com/tanhehe/p/2883531.html
Copyright © 2011-2022 走看看