题目
题目要求:
对一维数组按照从小到大的顺序排序。程序定义函数sort()来实现数组a的排序。函数原型如下:
int sort(int a[], int n);
数组元素的输出调用PrintArr()。
输入
第一行输入一个整数n(1<=n<=10),表示数组有n个整数;第二行输入n个整数。
输出
输出占一行。对这n个整数按照从小到大的顺序输出,数据之间用一个空格隔开。
输入样例
6
6 5 1 2 3 4
输出样例
1 2 3 4 5 6
涉及内容 :冒泡排序法,又叫比较交换法,其基本思想为:比较相邻的元素。如果前一个比后一个大,就交换,对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。经过第一轮排序,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个,每次对剩下的元素重复以上的步骤,直到没有任何一对数字需要比较。
代码
#include<stdio.h>
int sort(int a[], int n);
void PrintArr(int a[],int n);//函数声明
int main()
{
int a[11],n,i,j;
scanf("%d",&n);
for(i-0;i<n;i++)
{
scanf("%d",&a[i]);
}
sort(a,n);//进行排序
PrintArr(a,n);//输出数组内元素
return 0;
}
int sort(int a[], int n)
{
int i,j,t=0;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i]>a[j]){
t=a[i];
a[i]=a[j];
a[j]=t;//用冒泡排序法对数组中的数进行排序
}
}
}
return 0;
}
void PrintArr(int a[],int n)
{
for(int i=0;i<n;i++)
printf("%d ",a[i]);//输出数组里前n个元素
}