代码块:
方法1:
#include <stdio.h> #include <stdlib.h> void sort(int *s[10], int n); //定义排序函数 int main() { int *num[10], **p, i; for (i=0; i<10; num[i++]=(int *)malloc(4*sizeof(int))); //为数组分配空间 for (p=num, printf("Please enter 10 numbers: "); p<num+10; scanf("%d", *p++)); //输入10个整数 sort(num, 10); //调用排序函数 for (p=num, printf("Sort by: "); p<num+10; printf("%d ", **p++)); //输出排序后的10个整数 printf("\n"); return 0; } //排序函数 void sort(int *s[10], int n) { int i, j, t; for (i=0; i<n; i++) for (j=i+1; j<n; *s[i]>*s[j] ? t=*s[i], *s[i]=*s[j], *s[j]=t, j++ : j++); }方法2:
#include <stdio.h> #include <string.h> #include <stdlib.h> void input(int *num[], int n); void sort(int *num[], int n); void print(int *num[], int n); int main() { int numb, **number, i; printf("Please enter number: "); scanf("%d", &numb); number=(int**)malloc(numb*sizeof(int*)); for (i=0; i<numb; number[i++]=(int*)malloc(sizeof(int))); input(number, numb); sort(number, numb); print(number, numb); system("pause"); return 0; } void input(int *num[], int n) { int **p; for (p=num, printf("Please enter %d numbers: ", n); p<num+n; scanf("%d", *p++)); } void print(int *num[], int n) { int **p; for (p=num, printf("Sort by: "); p<num+n; printf("%d ", **p++)); printf("\n"); } void sort(int *num[], int n) { int i, j, *temp; for (i=0; i<n; i++) for (j=i+1; j<n; j++) if (*num[i]>*num[j]){ temp=num[i]; num[i]=num[j]; num[j]=temp; } }