一、选择排序
下面是第一种的代码和运行结果,可以自己把手动输入改为直接赋值
#include<stdio.h> #pragma warning(disable:4996)//我使用的是Microsoft Visual Studio,没有这句话会报错 void sort(int x[], int n); int main() { int i, a[10]; for (i = 0; i < 10; i++) { printf("请输入任意十个数,还需要输入:%d个数\n",10-i); scanf("%d", &a[i]); } sort(a, 10); printf("从大到小顺序:\n"); for ( i = 0; i < 10; i++) { printf("%d\n", a[i]); } printf("\n"); return 0; } void sort(int x[], int n) { int i, j, k = 0, t; for (i = 0; i < n - 1; i++) { for (j = i+1;j < n; j++) if (x[j] > x[k]) k = j; if (k != i) { t = x[i]; x[i] = x[k]; x[k] = t; } } }
选择排序代码运行结果
二、正反顺序的颠倒
#include<stdio.h> #pragma warning(disable:4996)//我使用的是Microsoft Visual Studio,没有这句话会报错 void inv(int x[], int n); int main() { int i, a[10]; for (i = 0; i < 10; i++) { printf("请输入任意十个数,还需要输入:%d个数\n", 10 - i); scanf("%d", &a[i]); } inv(a, 10); printf("反序输出:\n"); for (i = 0; i < 10; i++) { printf("%d\n", a[i]); } printf("\n"); return 0; } void inv(int x[], int n)//方法一 { int temp, *i, *j; i = x, j = x + n - 1; for (;i<j;i++,j--) { temp = *i; *i = *j; *j = temp; } } //void inv(int x[], int n)//方法二 //{ // int temp,i,j,m=(n-1)/2; // for (i = 0; i <=m; i++) // { // j = n - 1 - i; // temp= x[i]; // x[i] = x[j]; // x[j] = temp; // } // //}