2563 - 函数练习-3
时间限制 : 1 秒
内存限制 : 128 MB
编写一个函数sortInc(int *array, int len),其功能是对一个包含len个元素的整型数组进行从小到大的排序。
函数原型如下:
void sortInc(int *array, int len);
其中array为指向待排序数组的指针,len为数组中的元素个数。
从键盘上输入一个整数n(0<n<=100),接着输入n个整数并放入数组中,再调用上述函数对其按从小到大排序,最后将排好序的数组输出。
输出的数据之间用空格分隔。
题目输入
10 24 60 46 87 94 41 91 93 61 16
题目输出
16 24 41 46 60 61 87 91 93 94
输入/输出样例
输入格式
6 77 68 92 33 26 50
输出格式
26 33 50 68 77 92
C语言解答
#include<stdio.h> void sortInc(int *array, int len) { int p,k,j,t; for(j=0;j<len-1;j++) { for(k=0;k<len-1-j;k++) { if(*(array+k)>*(array+k+1)) { t=*(array+k); *(array+k)=*(array+k+1); *(array+k+1)=t; } } } } int main() { int a[100],i,j; scanf("%d",&j); for(i=0;i<j;i++) { scanf("%d",&a[i]); } sortInc(a,j); for(i=0;i<j;i++) { printf("%d ",a[i]); } return 0; }
C++解答
#include<stdio.h> int main() { void sortInc(int *a, int len); int array[100], n, i; int *b; b = array; scanf("%d", &n); for(i=0; i<n; i++) { scanf("%d", &array[i]); } sortInc(/*这里不能加星号*/b, n); for(i=0; i<n; i++) { printf("%d ", array[i]); } } /*一定要看的地方,很容易出错*/ /*正确*/ void sortInc(int *a, int len) { int i, j, t; for(i=0; i<len-1; i++) { for(j=0; j<len-1-i; j++) { if(*(a+j) > *(a+j+1)) { t = *(a+j); *(a+j) = *(a+j+1); *(a+j+1) = t; } } } }