(ppt)-inta[10];定义10个整形变量。讲解:类型的含义、元素的

上传人:繁星 文档编号:88145026 上传时间:2019-04-19 格式:PPT 页数:36 大小:232.60KB
返回 下载 相关 举报
(ppt)-inta[10];定义10个整形变量。讲解:类型的含义、元素的_第1页
第1页 / 共36页
(ppt)-inta[10];定义10个整形变量。讲解:类型的含义、元素的_第2页
第2页 / 共36页
(ppt)-inta[10];定义10个整形变量。讲解:类型的含义、元素的_第3页
第3页 / 共36页
(ppt)-inta[10];定义10个整形变量。讲解:类型的含义、元素的_第4页
第4页 / 共36页
(ppt)-inta[10];定义10个整形变量。讲解:类型的含义、元素的_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《(ppt)-inta[10];定义10个整形变量。讲解:类型的含义、元素的》由会员分享,可在线阅读,更多相关《(ppt)-inta[10];定义10个整形变量。讲解:类型的含义、元素的(36页珍藏版)》请在金锄头文库上搜索。

1、1,第七章 数组 1、一维数组 1、整形数组的说明: 例如:int a10; 定义10个整形变量。 讲解:类型的含义、元素的起点以及个数、变量不能定义数组的个数。 2、字符数组的说明: 例如:char s100; 定义100个字符变量。 其它的类型的数组定义相似。,2,3、在定义数组的同时对数组赋初值。 int a =2,4,6,8 ; char s =a,b ,c ,d ;/*注意:空间 */ 或者 char s =“abcd” ; /*注意:空间 */ 或者 char s = “abcd” ; 注意不允许这样: char s10; s=”abcd”;,3,一维数组的引用 数组必须先定义,后

2、使用 只能逐个引用数组元素,不能一次引用整个数组 数组元素表示形式: 数组名下标 其中:下标可以是常量或整型表达式,例 int i=15; int datai; (不能用变量定义数组维数),例 int a10; printf(“%d”,a); () 必须 for(j=0;j10;j+) printf(“%dt”,aj); (),例 int data5; data5=10; /C语言对数组不作越界检查,使用时要 注意,4,一维数组的初始化 初始化方式,在定义数组时,为数组元素赋初值 (在编译阶段使之得到初值),int a5=1,2,3,4,5; 等价于:a0=1; a1=2; a2=3; a3=

3、4; a4=5;,说明: 数组不初始化,其元素值为随机数 对static数组元素不赋初值,系统会自动赋以0值,当全部数组元素赋初值时,可不指定数组长度,如 int a5=6,2,3; 等价于: a0=6; a1=2;a2=3; a3=0; a4=0; 如 int a3=6,2,3,5,1; (),static int a5; 等价于:a0=0; a1=0; a2=0; a3=0; a4=0;,只给部分数组元素赋初值,int a=1,2,3,4,5,6; 编译系统根据初值个数确定数组维数,5,4、部分赋初值 int a10=1,6,9; 即 a0=1,a1=6,a2=9,a3=0,a9=0 ch

4、ar s10=a,b ,c ,d ; 即 s0=a,s1=b,s2=c,s3=d,s4=0s9=0 程序举例:冒泡排序。,6,例 用冒泡法对10个数排序,排序过程: (1)比较第一个数与第二个数,若为逆序a0a1,则交换;然 后比较第二个数与第三个数;依次类推,直至第n-1个数和第 n个数比较为止第一趟冒泡排序,结果最大的数被安置在 最后一个元素位置上 (2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在 第n-1个元素位置 (3)重复上述过程,共经过n-1趟冒泡排序后,排序结束,7,例,38,49,76,97,13,97,27,97,30,97,13,76,76,76,27,30,

5、13,65,27,65,30,65,13,13,49,49,30,49,27,38,27,38,30,38,8,#include “stdio.h“ #define N 10 main( ) int i,j,t,aN=23,2,7,3,90,76,66,56,75,34; for(i=0;iaj+1) t=aj; aj=aj+1; aj+1=t; for(i=0;iN;i+) printf(“%6d“,ai); ,9,例 用简单选择法对10个数排序,排序过程: (1)首先通过n-1次比较,从n个数中找出最小的, 将它与第一个数 交换第一趟选择排序,结果最小的数被安置在第一个元素位置上 (2)再

6、通过n-2次比较,从剩余的n-1个数中找出关键字次小的记录, 将它与第二个数交换第二趟选择排序 (3)重复上述过程,共经过n-1趟排序后,排序结束,10,例,初始: 49 38 65 97 76 13 27 ,i=1,13,49,一趟: 13 38 65 97 76 49 27 ,i=2,27,38,六趟: 13 27 38 49 65 76 97 ,11,#include “stdio.h“ #define N 10 main( ) int i,j,t,aN=23,2,7,3,90,76,66,56,75,34; for(i=0;iaj) k=j; if(k!=i) t=ak;ak=ai;a

7、i=t; for(i=0;iN;i+) printf(“%6d“,ai); ,12,2、二维数组 1、定义二维数组的格式 int a34 ; 定义了12个元素: a00、a01、a02、a03 a10、a11、a12、a13 a20、a21、a22、a23 在内存中的存放秩序?,13,定义方式: 数据类型 数组名常量表达式常量表达式;,数组元素的存放顺序 原因:内存是一维的 二维数组:按行序优先 多维数组:最右下标变化最快,例 int a34; float b25; int c234; int a3,4; (),行数,列数,元素个数=行数*列数,14,2、二维数组的初始化 int a34= 1

8、,2,3,4 , 5,6,7,8 , 9,10,11,12 ; -或者- int a34=1,2,3,4,5,6,7,8,9,10,11,12; -或者- int a 4=1,2,3,4,5,6,7,8,9,10,11,12; -但不可- int a3 =1,2,3,4,5,6,7,8,9,10,11,12;,15,部分初始化: int a34= 1, 5,6 ; 注意:区别定义int a34 和 引用 a23。 3、字符数组的输入和输出 1、字符数组的说明: char s =a,b ,c ,d ;/* s 的空间大小 */ -或者- char s =“abcd” ; /*此时 s 的大小 *

9、/ -或者- char s = “abcd” ; 注意:上述方法的本质不同。,16,例如:从键盘上输入一个字符串,并输出。 #include “stdio.h“ main( ) char s80; int i=0,c; while(c=getchar( )!=EOF ,注意: EOF 0,17,4、常用的字符串处理函数 1、 include char *gets(char s ); 功能:从键盘上读一行字符串,并以0取代换行符。 注意:区别scanf( )例如: #include main( ) char string80; printf(“Input a string:“); gets(st

10、ring); printf(“The string input was: %sn“, string); ,18,2、int puts(char s ); 功能:把数组s中以0结束的字符串在屏幕上输出, 并在尾部加一个换行符。 注意:区别printf( ) #include main( ) char string = “This is an example output string “; puts(string); /*区别:printf(“%s”,string); */ ,19,3、字符串的连接strcat( ) #include char *strcat(char dest , char

11、src ); 功能:将字符串src连接到dest字符串的尾部,形成一个字符串。 例如: #include “string.h“ main( ) char s20=“example “,t80 = “This is an “; strcat(t,s); puts(t); 注意:dest字符串要有足够的空间存放字符串。,20,4、字符串拷贝strcpy( ) #include char *strcpy(char dest , char src ); 功能:把src中的字符串拷贝到dest中。 例如: #include int main( ) char string10,str1 = “abcdef

12、ghi“; strcpy(string, str1); printf(“%sn“, string); ,21,5、计算字符串的长度strlen( ) #include int strlen(char s ); 功能:返回字符串s 中字符的个数,不包含0 。 例如: #include main( ) char string = “Borland International“; printf(“%dn“, strlen(string); ,22,6、把字符串中的大写字母转换为小写,其余字母不变。#include char *strlwr(char s ); 例如: #include “string

13、.h“ int main( ) char *str = “Borland “; printf(“string prior to strlwr: %sn“, string); strlwr(str); /* 注意:修改了原字符串 */ printf(“string after strlwr: %sn“, str); 7、把字符串中的小写字母转换为大写,其余字母不变: char *strupr(char s );,23,8、比较字符串s和t的大小。 int strcmp(char s ,char t ); 结果等于0:s和t一样; 结果大于于0:s t ; 结果小于0:s小于t 。 举例:比较两个

14、字符串的大小。,24,例1、从键盘上输入一行字符,将其存入字符数组s中。 getline(char s ,int lim) int c,i; for(i=0;ilim-1 ,25,例2、将字符串s2拷贝到s1中 copy(char s1 , char s2 ) int i=0; while(s1i=s2i)!=0) i+; 例3:将数字字符串转换成它所表示的值。 atoi(char s ) int i, n; for(n=0,i=0;si=0 ,26,提示:若上例要处理16进制的字符串,如何修改? 常见字符的ASCII: 0:48 ; 1:49; A:65; a:97,27,例4:将字符串t 连接到字符串s 的尾部,假设s有足够的空间存放字符串s和t 。 stringcat(char s ,char t ) /* 避免重名 */ int i,j; for(i=0;si!=0;i+) ; j=0; while(si+=tj+)!=0) ; ,28,例5 :输入一行字符,统计其中有多少个单词(单词之间有空格隔开)。 main( )

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作范文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号