#include <stdio.h>
int main(int argc,char *argv[])
//================================================
//argc是命令行总的参数个数
//argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数命令行后面跟的用户输入的参数,
//char *argv[]是一个字符数组,其大小是int argc,
// 主要用于命令行参数argv[]参数,数组里每个元素代表一个参数;
//=================================================
{
int a[10];
int num;
int m;
for(num=0;num<=9;num++)
{
printf("please enter a[%d]=",num);
scanf("%d",&a[num]);
}
for(m=0;m<9;m++)
{
for(num=0;num<9;num++) // 算法优化1 9改为9-m,这样会只比较需要比较的数值
//这里之前犯了一个严重的错误就是写成了 num<=9
//这会循环10次就相当于比较了10次,但是C语言对数组不作越界检查
//所以开始我也没发现这里的错误
//所以在使用循环时一定要注意循环的次数。
{
if(a[num]>a[num+1])
{
int i;
i=a[num];
a[num]=a[num+1];
a[num+1]=i; //swap it
}
}
}
for(num=0;num<=9;num++)
{
printf("a[%d]=%d\n",num,a[num]);
}
}
//算法优化2:将数组的最大值 用宏定义的方式进行定义,后面程序再小小变化一下,这样就只改变宏定义中的值就能
//方便的改变整个函数