题意描述:
对一维数组按照从小到大的顺序排序。程序定义函数sort()来实现数组a的排序。函数原型如下:
void sort(int a[], int n);
数组元素的输出调用PrintArr()。
输入
第一行输入一个整数n(1<=n<=10),表示数组有n个整数;第二行输入n个整数。
输出
输出占一行。对这n个整数数按照从小到大的顺序输出,数据之间用一个空格隔开。
解题思路:
可以用冒泡排序或者选择排序法进行数组a的排序。
代码实现:
1 #include<stdio.h> 2 void PrintArr(int a[],int n) 3 { 4 int i; 5 for(i=0;i<n;i++) 6 printf("%d ",a[i]); 7 } 8 void sort(int a[],int n) 9 { 10 int i,j,t; 11 for(i=0;i<n-1;i++) 12 { 13 for(j=0;j<n-1;j++) 14 { 15 if(a[j]>a[j+1]) 16 { 17 t=a[j];a[j]=a[j+1];a[j+1]=t; 18 } 19 } 20 } 21 PrintArr(a,n); 22 } 23 int main() 24 { 25 int n,a[20],i; 26 scanf("%d",&n); 27 for(i=0;i<n;i++) 28 scanf("%d",&a[i]); 29 sort(a,n); 30 return 0; 31 }
易错分析:
1.普通的冒泡排序以及选择排序要熟练运用,熟能生巧。