oj2017: 排序问题

来源:互联网 发布:mac 最好的五笔输入法 编辑:程序博客网 时间:2024/06/08 02:40
问题描述:输入10个整数,将它们从小到大排序后输出,并给出现在每个元素在原来序列中的位置。
作者:何知令
发表时间:2017年3月2日
输入:输入数据有一行,包含10个整数,用空格分开。

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

代码:

/*问题描述:输入10个整数,将它们从小到大排序后输出,并给出现在每个元素在原来序列中的位置。作者:何知令发表时间:2017年3月2日输入:输入数据有一行,包含10个整数,用空格分开。输出:输出数据有两行,第一行为排序后的序列,第二行为排序后各个元素在原来序列中的位置。 */#include <stdio.h>#include <stdlib.h>int main(){    int i,j,have;    int t;    int num1[10],num2[10];    for(i=0; i<10; i++)        scanf("%d",&num1[i]);    for(i=0; i<10; i++)        num2[i]=num1[i];    while(1)    {        have=0;        for(i=9; i>0; i--)        {            if(num2[i]<num2[i-1])            {                t=num2[i];                num2[i]=num2[i-1];                num2[i-1]=t;                have++;            }        }        if(have==0)            break;    }    for(i=0;i<10;i++)    {        printf("%d",num2[i]);        if(i!=9)            printf(" ");    }    printf("\n");    for(j=0; j<10; j++)    {        for(i=0; i<10; i++)        {            if(num2[j]==num1[i])            {                printf("%d",i+1);                if(j!=9)                    printf(" ");                    break;            }        }    }    return 0;}
程序运行结果展示:

知识点总结:数组操作

学习心得:做了好久,控制结构开始没想好,错了许久

0 0