代码块
方法1:(利用数组和循环结构)
#include <stdio.h> #include <stdlib.h> int main() { int n[4], i, j, t; printf("Please enter 4 numbers: "); for (i = 0; i < 4; scanf("%d", &n[i]), i++); //输入4个整数 //对4个整数进行从小到大排序 for (i = 0; i < 4; i++) for (j = i+1; j < 4; j++) n[i]>n[j] ? t=n[i], n[i]=n[j], n[j]=t : n[i]=n[i], n[j]=n[j]; for (i = 0; i < 4; printf("%d ", n[i]), i++); //输出4个整数 printf("\n"); system("pause"); return 0; }方法2:(利用函数的模块化设计)
#include <stdio.h> #include <stdlib.h> void input(int x[]); //定义输入函数 void shell(int x[]); //定义排序函数 void output(int x[]); //定义输出函数 int i; //定义全局变量 int main() { int n[4]; input(n); //调用输入函数 shell(n); //调用排序函数 output(n); //调用输出函数 system("pause"); return 0; } //输入函数 void input(int x[]) { printf("Please enter 4 numbers: "); for (i = 0; i < 4; scanf("%d", &x[i]), i++); } //排序函数 void shell(int x[]) { int j, t; for (i = 0; i < 4; i++) for (j = i+1; j < 4; j++) x[i]>x[j] ? t=x[i], x[i]=x[j], x[j]=t : x[i]=x[i], x[j]=x[j]; } //输出函数 void output(int x[]) { for (i = 0; i < 4; printf("%d ", x[i]), i++); printf("\n"); }方法3:(动态分配内存)
#include <stdio.h> #include <stdlib.h> void input(int *n, int nu); void sort(int *n, int nu); int main() { int *num=(int*)malloc(4*sizeof(int)); input(num, 4); sort(num, 4); system("pause"); return 0; } void input(int *n, int nu) { int *p; printf("Enter %d numbers: ", nu); for(p=n; p<n+nu; p++) scanf("%d", p); } void sort(int *n, int nu) { int *p, *q, temp; for(p=n; p<n+nu; p++) for(q=p+1; q<n+nu; q++) if(*p>*q){ temp=*q; *q=*p; *p=temp; } printf("Sort by: "); for(p=n; p<n+nu; p++) printf("%d ", *p); printf("\n"); }