C语言:用选择法对数组中10个数按由大到小排序

如题所述

#include<iostream>

using namespace std;

int main()

{

void select_sort(int arry[],int n)

int a[10],i;

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

{

cin>>a[i];

}

cout<<endl;

cout<< select_sort(a,10);    //函数调用,数组名作实参

for(i=0;i<=9;i++)            //输出10个已经排好序的数

{

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

}

cout<<endl;

return 0;

}

void select_sort(int arry[],int n)   //形参arry是数组名

{

int i,j,k,t;

for(i=0;i<=n-1;i++)

{

k=i;

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

{

if(arry[j]<arry[k])

{

k=j;

}

t=arry[k];

arry[k]=arry[i];

arry[i]=t;

}

}

}

运行结果:

扩展资料:

return表示把程序流程从被调函数转向主调函数并把表达式的值带回主调函数,实现函数值的返回,返回时可附带一个返回值,由return后面的参数指定。

return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-06-11

#include <stdio.h>
int main() 
{int n=10,i,j,k,t,a[10];
 for(i=0;i<10;i++)
   scanf("%d",&a[i]);
 for(i=0;i<9;i++)
 {k=i;
  for(j=i+1;j<10;j++)
    if(a[j]>a[k])k=j;
  t=a[i]; a[i]=a[k]; a[k]=t; 
 }  
 for(i=0;i<10;i++)
   printf("%d ",a[i]);
 printf("\n");
 return 0;
}

本回答被网友采纳
第2个回答  推荐于2016-01-05
#include "stdio.h" main() { int a[10]; int i,j,t; printf("输入1-100之间的10个数:"); for(i=0;i<10;i++) scanf("%d",a[i]); for(i=0;i<10;i++) for(j=0;j<10-i;j++) if(a[j]<a[j+1]) {t=a[j+1];a[j+1]=a[j];a[j]=t;} for(i=0;i<10;i++) printf("%d",a[i]); }本回答被提问者采纳
第3个回答  2019-02-07
#include
"stdio.h"
main()
{
int
a[10];

int
i,j,t;

printf("输入1-100之间的10个数:");

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

scanf("%d",a[i]);

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

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

if(a[j]<a[j+1])

{t=a[j+1];a[j+1]=a[j];a[j]=t;}

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

printf("%d",a[i]);
}
第4个回答  2018-06-10
#include<stdio.h>
void main()
{
int a[10],i,j,k,t;
printf("please input 10 numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++){
k=i;
for(j=i+1;j<10;j++){
if(a[k]<a[j])
k=j;
}
if(k!=i) 
{
t=a[i];
a[i]=a[k];
a[k]=t;
}
}
printf("The Sorted Numbers is:\n");
for(i=0;i<10;i++)
printf("%-3d",a[i]);
printf("\n");
}

相似回答