求C++程序:任意从键盘输入10个整数,按从小到大的顺序排序,并输出结果。
方法步骤如下:
1.首先,定义一个结构,包括数值、排名和序号。
2.定义结构数组变量d,保存所有整数信息。
3.接下来,定义一个自定义函数来比较整数序列中任意两个整数的大小。
4.定义一个自定义函数,比较整数序列中任意两个数字的序数大小。
5.在主函数中,首先定义两个整数,并保存整数个数和排名计数。
6.使用for循环输入序列中的整数,并设置序列中每个整数的序列号。
7.按整数大小排序的序列中的所有数值。
8.将好排序数值添加排序编号。
9.最后,根据索引输出所有整数的排序。
注意:
(1)交换排序:参照求最大值和最小值的思想,按升序排序的基本过程是将第一个数字与下一个数字进行比较。如果后面的数字很小,那么交换和第一个数字的位置。否则,不要交换。
(2)气泡排序:交换和重复两个相邻数字的过程。一般来说,如果有n个数字要排序,则需要n-1起泡。
(3)选择排序:在交换顺序的基础上,找出剩余数量的最大值,并与地面上的I+1数量进行交换,使得每轮比较中只有一次交换操作,该算法最多只有n-1个交换操作。
1、首先,定义一个结构体,包含数值、排名和序号。
2、定义一个结构体数组变量d,保存所有的整数信息。
3、接着,定义一个自定义函数,比较整数序列中,任意两个整数的大小。
4、定义一个自定义函数,比较整数序列中,任意两个数的序号大小。
5、主函数中,先定义两个整数,保存整数个数和排名计数。
6、用for循环,输入序列中的个整数,并设置每个整数在数列中的序号。
7、数列中的所有数值,按其整数大小进行排序。
8、给排好序的每个数值,添加排序编号。
9、然后,所有整数按索引排序。
10、最后,按照索引输出所有整数的排名。
11、运行程序,输入规定个数的整数,电脑就会输出每个整数在序列中的排名。C语言共有三种排序方法。
交换排序:借鉴了求最大值,最小值的思想,按升序排列的基本过程为,先将第一个数分别与后面的数进行比较,若后面是的数小,则交换和第一个数的位置,否则不交换。
这一轮结束之后,则求除了一个最小的放在第一个位置,然后进行第二轮比较,但这种交换效率低。
冒泡排序:将相邻两个数进行交换,重复的过程,一般,如果有N个数进行排序,则需进行N-1起泡。
选择排序:在交换排序的基础上,找出余下的数中的最大值再与地I+1个数进行交换,这样每一轮比较中最多只有一次交换操作,这个算法最多只有N—1次交换操作。
using namespace std;
int main()
{
int a[10];
for(int i=0;i<10;i++)
{
cout<<"input "<<i+1<<"number:";
cin>>a[i];
}
int flag=1;
while(flag==1)
{
flag=0;
for(int i=0;i<10;i++)
{
if(a[i]>a[i+1])
{
int m=a[i+1];
a[i+1]=a[i];
a[i]=m;
flag=1;
}
}
}
for(int i=0;i<10;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
return 1;
}
#include<iostream.h>
void main()
{ void Array(int array[],int N);
int array[10],i;
for( i=0;i,10;i++)
{ cout<<"\nInput No "<<i+1<<": ";
cin>>array[i];
}
cout<<"\n----------------Befor string------------\n";
for(i=0;i,10;i++)
{ if(i%5==0) cout<<"\n";//每行5个元素输出
cout<<" "<<array[i];
}
Array(array,10);//调用函数
cout<<"\n-----------After stritng-----------------\n " ;
for(i0;i,10;i++)
{ if(i%5==0) cout<<"\n";
cout<<" "<<array[i];
}
}
void Array(int array[],int N)//选择排序
{ int k,temp;
for(int i=0;i<N-1;i++)
{ k=i;
for(j=i+1;j<N;j++)
{ if(array[i]<array[j]) k=j;}
temp=array[i]; array[i]=array[k]; array[k]=temp;
}
}//望采纳