/*编写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小 排序。n及数组元素在主函数中输入。*/
#include <stdio.h> void sort(int *x, int n); void outPutAraay(int *x, int n); void swap(int *v1, int *v2); int main(int argc, const char * argv[]) { int n; printf("请输入数组元素的个数n "); scanf("%i",&n); //注意:只有n的值确定,才可以定义数组 int x[n]; for (int i = 0; i < n; i++) { printf("请输入数组的第%i个元素 ",i+1); scanf("%i",&x[i]); } printf("排序前: "); outPutAraay(x, n); sort(x, n); outPutAraay(x, n); return 0; } //排序 void sort(int *x, int n) { for (int i = 0; i < n - 1; i++) { for (int j = i + 1; j < n; j++) { if (x[i] < x[j]) { swap(&x[i], &x[j]); } } } } //遍历输出数组 void outPutAraay(int *x, int n) { for (int i = 0; i < n; i++) { printf("%i ",x[i]); } printf(" "); } //交换数据 void swap(int *v1, int *v2) { int temp = *v1; *v1 = *v2; *v2 = temp; }