资源描述:
《北大c语言高级编程PPT(数组与算法)ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第七讲:C语言高级编程(第一部分)数组与算法I北京大学信息科学技术学院2009年关于宏形式:#definePI3.14159宏名(一般用大写,以区别一般变量)宏体(可以是一个复杂的表达式)作用与意义1.在源程序中,用简单的宏名指代复杂的宏体2.程序更加直观形式:#definePI3.14159注意:1.#define可出现在程序的任一行2.宏的作用范围:由宏定义开始到程序末尾之间的区域3.宏定义不是C语句,不必在行尾加分号#definePI3.141593;#includeintmain(
2、){doubleS;S=PI-PI;printf(“%lf”,S);return0;}S的值是多少?按下build后……源文件可执行程序预编译编译连接没有宏的源文件二进制代码#definePI3.141593;intmain(){doubleS;S=PI-PI;return0;}预编译intmain(){doubleS;S=3.141593;-3.141593;;return0;}把源程序中的所有PI替换为3.141593;源文件没有宏的源文件intmain(){doubleS;S=3.141593;-
3、3.141593;;return0;}intmain(){doubleS;S=3.141593;-3.141593;;return0;}错误:使用宏定义常量时,在结尾加;#definePI3.14159;intmain(){return0;}#definePI3.14159intmain(){return0;}✕✓宏定义其他例子://整数常量#defineMAX200几个例子#includeintmain(){inta,b;inte;scanf("%d",&a);s
4、canf("%d",&b);………………printf("%d%d",a,b);return0;}程序填空,要求:输出的两个数值按照从小到大的顺序排列#includeintmain(){inta,b;inte;scanf("%d",&a);scanf("%d",&b);if(a>b){e=a;a=b;b=e;}printf("%d%d",a,b);return0;}#includeintmain(){inta,b,c;inte;scanf("%d",&a);scan
5、f("%d",&b);scanf("%d",&c);………………printf("%d%d",a,b,c);return0;}程序填空,要求:输出的3个数值按照从小到大的顺序排列#includeintmain(){inta,b,c;inte;scanf("%d",&a);scanf("%d",&b);scanf("%d",&c);if(a>b){e=a;a=b;b=e;}if(b>c){e=b;b=c;c=e;}if(a>b){e=a;a=b;b=e;}printf("%d%d%d"
6、,a,b,c);return0;}如果要求:1.接收用户输入的10个数值2.输出的10个数值按照从小到大的顺序排列难道需要这样定义10个变量吗?inta,b,c,d,e,f,g,h,i,j;如果要输入更多的数值呢?!有没有一种更简便的方式,可以一次定义一组变量?数组数组是什么?数组是一组变量数组是一组具有编号的、类型相同的变量数组是一组类型相同的变量如何声明一个数组intsz[10];数组的类型数组名数组中变量的数目必须是一个常量数组中变量的编号intsz[10];数组中变量的编号从0开始;到数组的长度-1
7、结束0123456789如何访问数组中的变量intsz[10];sz[0]=1;sz[1]=3;sz[2]=7;…sz[8]=16;sz[9]=12;…sz[2]…;数组名变量编号数组变量赋值的一种特殊方式声明时赋值intsz[5]={12,3,7,28,-2};访问数组中变量的一种常见方式intsz[10];inti;…i=…;sz[i]=……i的值可以根据需要变化#includeintmain(){intsz[10];inti;for(;;){;}for(i=0;i<10;i++){p
8、rintf("%d",sz[i]);}return0;}程序填空,要求:1.接收用户输入的10个数字2.存放在数组sz中#includeintmain(){intsz[10];inti;for(i=0;i<10;i++){scanf("%d",&(sz[i]));}for(i=0;i<10;i++){printf("%d",sz[i]);}return0;}数组的遍历通过循环结构正向遍历#def