回 帖 发 新 帖 刷新版面

主题:[讨论]输入10个数后怎么排序请指教

我看了个题目,定义一个数组a[10],输入10个数到a[10]中,然后把a[0]送入max中,从a[1]到a[9]逐个与max中的内容比较,若比max的值大,则把该下标变量送入max中。我想做到对输入的10个数再进行排序,升序或降序都可以,不知道怎么加入代码来实现,请高手指教,谢谢了~~~

main()
{
  int i,max,a[10];
  printf("input 10 numbers:\n");
  for(i=0;i<10;i++)
      scanf("%d",&a[i]);
  max=a[0];
  for(i=1;i<10;i++)
      if(a[i]>max) max=a[i];
  printf("maxmum=%d\n",max); 
}

回复列表 (共3个回复)

沙发

哈哈,终于摸出来了,书上介绍的起泡法改动了下就ok啦~~


main()
{
  int i,j,t,max,a[10];
  printf("input 10 numbers:\n");
     for(i=0;i<10;i++)
      scanf("%d",&a[i]);
      max=a[0];
       for(i=0;i<10;i++)
        if(a[i]>max)max=a[i];
        printf("maxnum=%d \n",max);

      for(i=0;i<10;i++)
      for(j=i;j<10;j++)
        if(a[i]>a[j]){t=a[i];a[i]=a[j];a[j]=t;}
       for(i=0;i<10;i++)
       printf("%d ",a[i]);
}

板凳


看看这样吧
#include<iostream>
include<iomanip>
using namespace std;
void print(int a[],int n);
void sort(int a[],int n);//声明两个函数一个是用来输出数组另一个是用来从小排列
void main(){
   const int max=15; //设定这个数组的最大下标;
   int i,n;
int a[max]; //定义一个数组\
do{
    cout<<"输入一个小于15的数组下标"<<endl;
    cin>>n;
  }while(!(n>=1&&n<=max));//输入的N值不能少于1不能大于15
cout<<"输入你要排序的数为"<<endl;
for(i=0;i<n;i++){
          cin>>a[i];}//把每个数赋值给数组
cout<<"比较前的数组"<<;
print(a,n);
sort(a,n);
cout<<"比较后的数组<<;
print(a,n);
}
void sort(int a[],int n){
     int i,j,temp;
fot(i=0,in-1;i++){
       for(j=i+1;j<n;j++){
          if(a[j]<a[i]){
                  temp=a[i];
                  a[i]=a[j];
                  a[j]=temp;
                        }
                      }
                      }
                    }
void print(int a[],int n){
             for(i=0;i<n;i++){
               cout<<setw(5)<<a[i];
               cout<<endl;
}      

3 楼

起泡法,选择法都可以哈。。。。。

我来回复

您尚未登录,请登录后再回复。点此登录或注册