求C++程序:任意从键盘输入10个整数,按从小到大的顺序排序,并输出结果。

如题所述

方法步骤如下:

1.首先,定义一个结构,包括数值、排名和序号。

2.定义结构数组变量d,保存所有整数信息。

3.接下来,定义一个自定义函数来比较整数序列中任意两个整数的大小。

4.定义一个自定义函数,比较整数序列中任意两个数字的序数大小。

5.在主函数中,首先定义两个整数,并保存整数个数和排名计数。

6.使用for循环输入序列中的整数,并设置序列中每个整数的序列号。

7.按整数大小排序的序列中的所有数值。

8.将好排序数值添加排序编号。

9.最后,根据索引输出所有整数的排序。

注意:

(1)交换排序:参照求最大值和最小值的思想,按升序排序的基本过程是将第一个数字与下一个数字进行比较。如果后面的数字很小,那么交换和第一个数字的位置。否则,不要交换。

(2)气泡排序:交换和重复两个相邻数字的过程。一般来说,如果有n个数字要排序,则需要n-1起泡。

(3)选择排序:在交换顺序的基础上,找出剩余数量的最大值,并与地面上的I+1数量进行交换,使得每轮比较中只有一次交换操作,该算法最多只有n-1个交换操作。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-04-27

1、首先,定义一个结构体,包含数值、排名和序号。

2、定义一个结构体数组变量d,保存所有的整数信息。

3、接着,定义一个自定义函数,比较整数序列中,任意两个整数的大小。

4、定义一个自定义函数,比较整数序列中,任意两个数的序号大小。

5、主函数中,先定义两个整数,保存整数个数和排名计数。

6、用for循环,输入序列中的个整数,并设置每个整数在数列中的序号。

7、数列中的所有数值,按其整数大小进行排序。

8、给排好序的每个数值,添加排序编号。

9、然后,所有整数按索引排序。

10、最后,按照索引输出所有整数的排名。

11、运行程序,输入规定个数的整数,电脑就会输出每个整数在序列中的排名。C语言共有三种排序方法。

交换排序:借鉴了求最大值,最小值的思想,按升序排列的基本过程为,先将第一个数分别与后面的数进行比较,若后面是的数小,则交换和第一个数的位置,否则不交换。

这一轮结束之后,则求除了一个最小的放在第一个位置,然后进行第二轮比较,但这种交换效率低。

冒泡排序:将相邻两个数进行交换,重复的过程,一般,如果有N个数进行排序,则需进行N-1起泡。

选择排序:在交换排序的基础上,找出余下的数中的最大值再与地I+1个数进行交换,这样每一轮比较中最多只有一次交换操作,这个算法最多只有N—1次交换操作。

本回答被网友采纳
第2个回答  推荐于2018-02-24
#include <iostream>

using namespace std;

int main()

{

 int a[10],i,j,k,temp;

 cout<<"请输入10个数"<<endl;

 for(i=0;i<10;i++)

  cin>>a[i];

 for(i=0;i<9;i++)

 {

  k=i;

  for(j=i+1;j<10;j++)

   if(a[k]>a[j])  k=j;

   if(k!=i)

   {

    temp=a[i];

    a[i]=a[k];

    a[k]=temp;

   }

 }

 for(i=0;i<10;i++)

  cout<<a[i]<<"   ";

 cout<<endl;

 return 0;

}

 

本回答被提问者和网友采纳
第3个回答  2013-07-05
#include<iostream>
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;
}
第4个回答  2013-07-05
#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;
  }
}//望采纳

相似回答