acm--排序与位置问题(垃圾算法...更好的正在改进)

来源:互联网 发布:高考软件文科 编辑:程序博客网 时间:2024/06/05 04:38
/**程序的版权和版本声明部分:*Copyright(c)2013,烟台大学计算机学院学生*All rights reserved.*文件名称:*作者:田成琳*完成日期:2013年 11月28 日*版本号:v1.0*对任务及求解方法的描述部分:*输入描述: 输入数据有一行,包含10个整数,用空格分开。*问题描述:输入10个整数,将它们从小到大排序后输出,并给出现在每个元素在原来序列中的位置。*程序输出:输出数据有两行,第一行为排序后的序列,第二行为排序后各个元素在原来序列中的位置。*问题分析: Sample Input           1 2 3 5 4 6 8 9 10 7   Sample Output           1 2 3 4 5 6 7 8 9 10           1 2 3 5 4 6 10 7 8 9*算法设计:*/#include<iostream>void input(int[]);int paixu(int[]);void output(int[]);using namespace std; int b0,b1,b2,b3,b4,b5,b6,b7,b8,b9;   //作为全局变量int main() {     int i,a[1000],c[1000];input(a);paixu(a);output(a);for(i=0;i<10;i++)     { if(a[i]==b0)                 //对a[]数组中的值进行记录 c[i]=1; else if(a[i]==b1) c[i]=2; else if(a[i]==b2) c[i]=3; else if(a[i]==b3) c[i]=4; else if(a[i]==b4) c[i]=5; else if(a[i]==b5) c[i]=6; else if(a[i]==b6) c[i]=7; else if(a[i]==b7) c[i]=8; else if(a[i]==b8) c[i]=9; else if(a[i]==b9) c[i]=10; } cout<<endl;output(c);cout<<endl;return 0; }int paixu(int a[]){int i,j,t;for(i=0;i<10;i++)        //以下是对10个数进行排序{ for(j=0;j<9;j++) { if(a[j]>a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } return a[j];}void input(int a[]){int i;for(i=0;i<10;i++){cin>>a[i];}for(int j=0;j<10;j++)            //将a[]数组的值分别给b...{b0=a[0]; b1=a[1]; b2=a[2]; b3=a[3]; b4=a[4]; b5=a[5]; b6=a[6]; b7=a[7]; b8=a[8]; b9=a[9]; }}void output(int a[]){int i;for(i=0;i<10;i++){cout<<a[i]<<" ";}}


运行结果:


心得体会:

原创粉丝点击