定义一个函数sort(int array[10],int len),其中参数array表示传入的整形数组,len表示数组的长度,用于排序;
定义一个函数input(int array[10],int len),参数同上,用于输入一组数据;
定义一个函数output(int array[10],int len),参数同上,用于输出排序后结果;
在main函数中定义数组,并调用上述函数完成排序。
以下是我在VC++2010中实现的,由于你没有指定语言和排序类型,我用的C,按升序排序。改成C++也很容易。
本例按照提问者要求设计为输入10个以内的任意整数,如制定为10个,可删除main()函数中第2、3行,将n直接赋值为10即可。
-------------------------------------------------------------------
#include<stdio.h>
void sort(int array[10], int len);
void input(int array[10], int len);
void output(int array[10], int len);
int main(void)
{
int number[10], n;
printf("输入你想要排序的数字个数:");
scanf("%d", &n);
input(number, n);
sort(number, n);
output(number, n);
return 0;
}
void sort(int array[10], int len)
{ //冒泡法排序
int i, j, temp;
for (i = 0; i < len - 1; i++)
{
for (j = 0; j < len - 1 - i; j++)
{ /*此处为升序,将此处大于(>)改成小于(<)则为降序排序*/
if (array[j] > array[j + 1])
{
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
}
void input(int array[10], int len)
{
int i;
printf("输入你的数字:\n");
for (i = 0; i < len; i++)
{
printf("The No.%d: ", i + 1);
scanf("%d", &array[i]);
}
}
void output(int array[10], int len)
{
int i;
printf("排序后:\n");
for (i = 0; i < len; i++)
printf("%d\t", array[i]);
printf("\n");
}
--------------------------------------------------------
#include <iostream>
using namespace std;
void sort( int [], int );
void input( int [], int );
void output( int [], int );
int main()
{
const int LENGTH = 10;
int array[ LENGTH ];
input( array, LENGTH );
sort( array, LENGTH );
output( array, LENGTH );
return 0;
}
void sort( int array[], int len )
{
int temp;
for( int i = 0; i < len; i++ )
for( int j = i; j < len; j++ )
if( array[ j ] > array[ i ] ) {
temp = array[ j ];
array[ j ] = array[ i ];
array[ i ] = temp;
}
}
void input( int array[], int len )
{
cout << "Please input 10 integers:\n";
for( int i = 0; i < len; i++ )
cin >> array[ i];
}
void output( int array[], int len )
{
cout << "Now, the array is:\n";
for( int i = 0; i < len; i++ )
cout << '\t' << array[ i ];
}