main函数部分
#include<stdio.h> void max_to_small(int a[],int length); int main() { //读入用户输入比较的个数,确定数组的大小 printf("请输入你要比较数的个数:"); int number=0; scanf("%d",&number); printf("\n"); //依次读入用户输入的数,用数组记录存储 printf("请依次输入你要比较的数(按回车输入下一位数):"); printf("\n"); int a[number]={0}; int i; for(i=0; i<number; i++){ scanf("%d",&a[i]); } //调用函数max_to_small将读入数据进行排序 max_to_small(a,sizeof(a)/sizeof(a[0])); //将排序后结果输出 printf("由大到小的排序结果为:\n"); for(i=0; i<number; i++){ printf("%d ",a[i]); } printf("\n"); return 0; }
max-to-small函数部分
void max_to_small(int a[],int length) { int i; int small=0; while(length != 1){ /* for循环功能:将传入数组a中第一元素与第二元素比较,较小元素往第二位移动, 再将第二元素与第三元素比较,较小元素移至第三位,以此类推*/ for(i=0; i<length-1; i++){ if(a[i] < a[i+1]){ small=a[i]; a[i]=a[i+1]; a[i+1]=small; } } length--; /*每轮for循环结束后,最小数已经在数组最后位置, 将循环条件length减一,然后下一轮就不用在判定上一轮得到的最小数了 */ } }
03-10
780