lesson11数据的组织结构一二维数组_第1页
lesson11数据的组织结构一二维数组_第2页
lesson11数据的组织结构一二维数组_第3页
lesson11数据的组织结构一二维数组_第4页
lesson11数据的组织结构一二维数组_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Lesson11数据的组织结构1lesson11数据的组织结构一二维数组共42页,您现在浏览的是第1页!学习目标:31掌握二维数组的使用2lesson11数据的组织结构一二维数组共42页,您现在浏览的是第2页!3字符数组2字符数组:数组元素的类型为字符hello\03lesson11数据的组织结构一二维数组共42页,您现在浏览的是第3页!3字符数组2字符串用双引号括起来的一串字符“1234”“Tom”“CLanuageProgram”4lesson11数据的组织结构一二维数组共42页,您现在浏览的是第4页!3字符数组2字符数组的初始化(1)字符数组的初始化的基本方法charch[5]={'h','e','l','l','o'};(2)省略长度说明如:

charch[]={'h','e','l','l','o'};(3)使用字符串初始化字符数组:

charch[]={“abcde”};charch[]=“abcde”;abcde\05lesson11数据的组织结构一二维数组共42页,您现在浏览的是第5页!3字符数组2字符串的输出

1、puts(str);

2、printf(%s”,str);puts将字符串的内容显示到标准输出设备——屏幕上,并换行。

6lesson11数据的组织结构一二维数组共42页,您现在浏览的是第6页!3字符数组2例1:将用户以字符串形式输入的两个实型数值转换成double类型,并显示输出这两个实型数值及它们相加的结果。7lesson11数据的组织结构一二维数组共42页,您现在浏览的是第7页!3字符数组2数值类型转换成字符串

itoa(num,str,radix);ltoa(num,str,radix);

其中str用于存放结果的字符串,radix是用户指定的进制数,它的取值必须介于2~36之间。在itoa()函数中的num是一个int类型的数值;在ltoa()函数中的num是一个long类型的数值。8lesson11数据的组织结构一二维数组共42页,您现在浏览的是第8页!#include<stdio.h>#include<stdlib.h>intmain(){charstr[33];longvalue;printf("\nEnteralongnumber:");scanf("%ld",&value);/*输入一个long类型的数值*/ltoa(value,str,16);/*转换成用字符串形式表示的十六进制数值*/printf("\nThehexadecimalof%ldis%s",value,str);ltoa(value,str,8);/*转换成用字符串形式表示的八进制数值*/printf("\nTheoctadecimalof%ldis%s",value,str);ltoa(value,str,2);/*转换成用字符串形式表示的二进制数值*/printf("\nThebinaryof%ldis%s",value,str);return0;}9lesson11数据的组织结构一二维数组共42页,您现在浏览的是第9页!3字符数组2例3:统计一段文本中每个英文字母出现的次数。分析:定义一个数组letter,存放英文字母出现的次数00000000letterA的次数B的次数C的次数循环字符数组,针对每个字母,找到其在数组letter中的对应位置,然后加110lesson11数据的组织结构一二维数组共42页,您现在浏览的是第10页!#include<stdio.h>#include<string.h>#include<ctype.h>#defineNUM26intmain(){intletter[NUM]={0}; /*用于存放统计结果的一维数组*/charstr[80]; /*存放以字符串形式输入的文本*/inti;printf("\nEnteratextline<Enterend>");gets(str); /*输入文本*/strupr(str); /*将文本中的所有小写字母转换成大写字母*/for(i=0;str[i]!='\0';i++){ /*统计每个字母出现的次数*/if(isalpha(str[i])){letter[str[i]-'A']=letter[str[i]-'A']+1;}}for(i=0;i<NUM;i++){ /*输出统计结果*/printf("\n\'%c\':%d",'A'+i,letter[i]);}return0;}11lesson11数据的组织结构一二维数组共42页,您现在浏览的是第11页!3字符数组2例4:假设用户的密码是“administrators”,下面这个程序将用于检测用户输入的密码是否正确。如果不正确,给出相应的提示信息,并请求用户重新输入。分析:循环的从键盘输入一个字符串,用来和administrators比较,如果相等结束循环12lesson11数据的组织结构一二维数组共42页,您现在浏览的是第12页!3字符数组2字符串拷贝

strcpy(str1,str2);其中str2是将要被拷贝的字符串,str1是用于存放拷贝结果的存储区域。字符串连接

strcat(str1,str2);其中str1和str2是两个字符串。这个函数的功能是:将str2连接在str1之后,并在结束处添加一个字符串结束符‘\0’13lesson11数据的组织结构一二维数组共42页,您现在浏览的是第13页!#include<stdio.h>#include<string.h>intmain(){charstr1[80]="Thisisa";charstr2[]="program.";charstr3[]="Java";charstr4[]="Pascal";charstr5[]="C";charstr6[]="C++";intchoice;printf("\n===MENU==\n");/*菜单*/printf("\nJava................1");printf("\nPascal.............2");printf("\nC....................3");printf("\nC++................4");printf("\nchoice:");scanf("%d",&choice);/*用户做出选择*/14lesson11数据的组织结构一二维数组共42页,您现在浏览的是第14页!3二维数组3请从键盘输入3个同学、4门课程的成绩,并按照如下格式输出8070999783926591858876例:15lesson11数据的组织结构一二维数组共42页,您现在浏览的是第15页!3二维数组3思考重新排列特点:像表格一样具有行和列,每个变量需要行和列的位置才能确定score16lesson11数据的组织结构一二维数组共42页,您现在浏览的是第16页!3二维数组3二维数组的引用1234567891011127第1行第2列数组aa[1][2]数组名[行下标][列下标]

17lesson11数据的组织结构一二维数组共42页,您现在浏览的是第17页!3二维数组操作4二维数组元素的引用及基本操作数组的赋值

for(i=0;i<ROWS;i++)for(j=0;j<COLS;j++)value[i][j]=i+j;数组的输入

for(i=0;i<ROWS;i++)for(j=0;j<COLS;j++)scanf(“%d”,&value[i][j]);#defineROWS4#defineCOLS5intvalue[ROWS][COLS];18lesson11数据的组织结构一二维数组共42页,您现在浏览的是第18页!3二维数组应用5例6:判断给定方阵是否为对称矩阵。

11021882104139925211361436889914712322536123319lesson11数据的组织结构一二维数组共42页,您现在浏览的是第19页!算法描述

20lesson11数据的组织结构一二维数组共42页,您现在浏览的是第20页!/*判断矩阵是否对称并输出相应的结果*/for(i=0;i<NUM;i++)for(j=0;j<i;j++) if(m[i][j]!=m[j][i]){ printf("\nThematrixisn'tsymmetrical."); return0; }printf("\nThematrixissymmetrical.");return0;}21lesson11数据的组织结构一二维数组共42页,您现在浏览的是第21页!22#include<stdio.h>#defineROWS2 //矩阵行数#defineCOLS4 //矩阵列数intmain(){ intvalue1[ROWS][COLS],value2[COLS][ROWS]; inti,j; printf("\nEnter%drows%dcolsdatasforthe maxtrix:\n",ROWS,COLS); for(i=0;i<ROWS;i++) for(j=0;j<COLS;j++) scanf("%d",&value1[i][j]); for(i=0;i<ROWS;i++) for(j=0;j<COLS;j++) value2[j][i] =value1[i][j]; for(i=0;i<COLS;i++){ for(j=0;j<ROWS;j++) printf("%4d",value2[i][j]); printf("\n");} return0;}lesson11数据的组织结构一二维数组共42页,您现在浏览的是第22页!3字符数组2字符数组的定义charch[10];23lesson11数据的组织结构一二维数组共42页,您现在浏览的是第23页!3字符数组2字符串在计算机中表示“1234”1234\0字符数组字符串结束标志24lesson11数据的组织结构一二维数组共42页,您现在浏览的是第24页!3字符数组2字符串的输入输出

1、gets(str);2、scanf(“%s”,str);gets()函数以换行符或文件结束符EOF作为输入的结束标志,因此在输入的字符串中允许包含空格和制表符;scanf()函数则以空格、制表符、换行符和文件结束符EOF作为输入的结束标志,因此,在输入的字符串中不允许包含这些字符。如果包含了它们,将作为字符串输入的结束标志处理。

charstr[100];25lesson11数据的组织结构一二维数组共42页,您现在浏览的是第25页!3字符数组2字符串转换成数值类型

atof(str);atoi(str);atol(str);其中str是一个字符串。atof()的返回类型是double,它可以将字符串str转换成一个双精度数值;atoi()的返回类型是int,它可以将字符串str转换成普通整型;atol()的返回类型是long,它可以将字符串str转换成长整型(long)。

26lesson11数据的组织结构一二维数组共42页,您现在浏览的是第26页!#include<stdio.h>#include<stdlib.h>intmain(){charnum1[20],num2[20];doubled1,d2,sum;printf("\nEnterthefirstnumber:");gets(num1); /*输入第1个用字符串表示的实型数值*/printf("\Enterthssecondnumber:");gets(num2); /*输入第2个用字符串表示的实型数值*/d1=atof(num1);/*将第1个字符串转换成double类型*/d2=atof(num2);/*将第2个字符串转换成double类型*/sum=d1+d2;/*将2个double类型数值相加*/printf("\n%s+%s=%.3lf",num1,num2,sum);/*显示结果*/return0;}27lesson11数据的组织结构一二维数组共42页,您现在浏览的是第27页!3字符数组2例2:将用户输入的长整型(long类型)数值转换成以字符串形式表示的十六进制、八进制和二进制数值,并显示输出。28lesson11数据的组织结构一二维数组共42页,您现在浏览的是第28页!3字符数组2大小写转换

strlwr(str);strupr(str);str是一个字符串。标准函数strlwr()可以将字符串str中出现的所有大写字母转换成小写字母;标准函数strupr()可以将字符串str中出现的所有小写字母转换成大写字母。29lesson11数据的组织结构一二维数组共42页,您现在浏览的是第29页!3字符数组200000000letterA的次数B的次数C的次数如何确定每个字母在letter中的位置呢?A对应letter[0]B对应letter[1]C对应letter[2]下标:0‘A’-’A’下标:1‘B’-’A’下标:2‘C’-’A’30lesson11数据的组织结构一二维数组共42页,您现在浏览的是第30页!3字符数组2计算字符串长度

strlen(str);这个函数的功能是返回字符串中所包含的字符个数,即字符串长度。字符串结束标志‘\0’不计算在内。字符串比较

strcmp(str1,str2);两个字符串进行比较时将依据每个字符对应的ASCII编码决定其大小。

31lesson11数据的组织结构一二维数组共42页,您现在浏览的是第31页!#include<stdio.h>#include<string.h>intmain(){charpassword[20]; /*存放用户输入的密码*/printf("\nEnterpassword:");gets(password); /*输入密码*/

/*检测用户输入的密码,如果不正确,给出提示,并请求重新输入*/while(strcmp(password,"administrators")!=0){printf("\nInvalidpassword\n\n");printf("Enterpassword,again:");gets(password);}printf("OK");/*输入正确,显示"OK"*/return0;}32lesson11数据的组织结构一二维数组共42页,您现在浏览的是第32页!3字符数组2例5:根据用户的选择输出相应的字符串。

分析:1、定义好需要输出的字符串2、从键盘输入一个数3、判断输入的数,根据要求连接成一个新的字符串后输出33lesson11数据的组织结构一二维数组共42页,您现在浏览的是第33页!switch(choice){/*根据用户的选择拼接字符串*/case1: strcat(str1,str3); strcat(str1,str2); break;case2: strcat(str1,str4); strcat(str1,str2); break;case3: strcat(str1,str5); strcat(str1,str2); break;case4: strcat(str1,str6); strcat(str1,str2); break;default: strcpy(str1,"Error"); break;}printf("\n%s",str1);/*显示字符串*/return0;}34lesson11数据的组织结构一二维数组共42页,您现在浏览的是第34页!3二维数组3分析有12个成绩需要保存,使用数组长度为12的一维数组??intscore[12]数组排列方式如何区分是哪门课程,是第几个同学的成绩?score35lesson11数据的组织结构一二维数组共42页,您现在浏览的是第35页!3二维数组3在C语言中如何实现?类型数组名[行长度][列长度]intarray[3][4]例:floatd[3][5];inta[6][6];chars[4][10];所有元素都是int数组名3行4列注意:必须是常量array36lesson11数据的组织结构一二维数组共42页,您现在浏览的是第36页!3二维数组3在定义二维数组时,给元素赋初值形式1:inta[2][3]={1,2,3,4,5,6};形式2:inta[2][3]={{1,2,3},{4,5,6}};形式3:inta[][3]={1,2,3,4,5,6};形式4:inta[2][]={1,2,3,4,5,6};×错误!37lesson11数据的组织结构一二维数组共42页,您现在浏览的是第37页!3二维数组操作4二维数组元素的引用及基本操作3.数组的输出

for(i=0;i<ROWS;i++){for(j=0;j<COLS;j++)printf(“%4d”,value[i][j]);putchar(‘\n’);}#defineROWS4#de

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论