lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組_第1頁(yè)
lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組_第2頁(yè)
lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組_第3頁(yè)
lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組_第4頁(yè)
lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組_第5頁(yè)
已閱讀5頁(yè),還剩37頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Lesson11數(shù)據(jù)的組織結(jié)構(gòu)1lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第1頁(yè)!學(xué)習(xí)目標(biāo):31掌握二維數(shù)組的使用2lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第2頁(yè)!3字符數(shù)組2字符數(shù)組:數(shù)組元素的類(lèi)型為字符hello\03lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第3頁(yè)!3字符數(shù)組2字符串用雙引號(hào)括起來(lái)的一串字符“1234”“Tom”“CLanuageProgram”4lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第4頁(yè)!3字符數(shù)組2字符數(shù)組的初始化(1)字符數(shù)組的初始化的基本方法charch[5]={'h','e','l','l','o'};(2)省略長(zhǎng)度說(shuō)明如:

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

charch[]={“abcde”};charch[]=“abcde”;abcde\05lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第5頁(yè)!3字符數(shù)組2字符串的輸出

1、puts(str);

2、printf(%s”,str);puts將字符串的內(nèi)容顯示到標(biāo)準(zhǔn)輸出設(shè)備——屏幕上,并換行。

6lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第6頁(yè)!3字符數(shù)組2例1:將用戶(hù)以字符串形式輸入的兩個(gè)實(shí)型數(shù)值轉(zhuǎn)換成double類(lèi)型,并顯示輸出這兩個(gè)實(shí)型數(shù)值及它們相加的結(jié)果。7lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第7頁(yè)!3字符數(shù)組2數(shù)值類(lèi)型轉(zhuǎn)換成字符串

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

其中str用于存放結(jié)果的字符串,radix是用戶(hù)指定的進(jìn)制數(shù),它的取值必須介于2~36之間。在itoa()函數(shù)中的num是一個(gè)int類(lèi)型的數(shù)值;在ltoa()函數(shù)中的num是一個(gè)long類(lèi)型的數(shù)值。8lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第8頁(yè)!#include<stdio.h>#include<stdlib.h>intmain(){charstr[33];longvalue;printf("\nEnteralongnumber:");scanf("%ld",&value);/*輸入一個(gè)long類(lèi)型的數(shù)值*/ltoa(value,str,16);/*轉(zhuǎn)換成用字符串形式表示的十六進(jìn)制數(shù)值*/printf("\nThehexadecimalof%ldis%s",value,str);ltoa(value,str,8);/*轉(zhuǎn)換成用字符串形式表示的八進(jìn)制數(shù)值*/printf("\nTheoctadecimalof%ldis%s",value,str);ltoa(value,str,2);/*轉(zhuǎn)換成用字符串形式表示的二進(jìn)制數(shù)值*/printf("\nThebinaryof%ldis%s",value,str);return0;}9lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第9頁(yè)!3字符數(shù)組2例3:統(tǒng)計(jì)一段文本中每個(gè)英文字母出現(xiàn)的次數(shù)。分析:定義一個(gè)數(shù)組letter,存放英文字母出現(xiàn)的次數(shù)00000000letterA的次數(shù)B的次數(shù)C的次數(shù)循環(huán)字符數(shù)組,針對(duì)每個(gè)字母,找到其在數(shù)組letter中的對(duì)應(yīng)位置,然后加110lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第10頁(yè)!#include<stdio.h>#include<string.h>#include<ctype.h>#defineNUM26intmain(){intletter[NUM]={0}; /*用于存放統(tǒng)計(jì)結(jié)果的一維數(shù)組*/charstr[80]; /*存放以字符串形式輸入的文本*/inti;printf("\nEnteratextline<Enterend>");gets(str); /*輸入文本*/strupr(str); /*將文本中的所有小寫(xiě)字母轉(zhuǎn)換成大寫(xiě)字母*/for(i=0;str[i]!='\0';i++){ /*統(tǒng)計(jì)每個(gè)字母出現(xiàn)的次數(shù)*/if(isalpha(str[i])){letter[str[i]-'A']=letter[str[i]-'A']+1;}}for(i=0;i<NUM;i++){ /*輸出統(tǒng)計(jì)結(jié)果*/printf("\n\'%c\':%d",'A'+i,letter[i]);}return0;}11lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第11頁(yè)!3字符數(shù)組2例4:假設(shè)用戶(hù)的密碼是“administrators”,下面這個(gè)程序?qū)⒂糜跈z測(cè)用戶(hù)輸入的密碼是否正確。如果不正確,給出相應(yīng)的提示信息,并請(qǐng)求用戶(hù)重新輸入。分析:循環(huán)的從鍵盤(pán)輸入一個(gè)字符串,用來(lái)和administrators比較,如果相等結(jié)束循環(huán)12lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第12頁(yè)!3字符數(shù)組2字符串拷貝

strcpy(str1,str2);其中str2是將要被拷貝的字符串,str1是用于存放拷貝結(jié)果的存儲(chǔ)區(qū)域。字符串連接

strcat(str1,str2);其中str1和str2是兩個(gè)字符串。這個(gè)函數(shù)的功能是:將str2連接在str1之后,并在結(jié)束處添加一個(gè)字符串結(jié)束符‘\0’13lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第13頁(yè)!#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);/*用戶(hù)做出選擇*/14lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第14頁(yè)!3二維數(shù)組3請(qǐng)從鍵盤(pán)輸入3個(gè)同學(xué)、4門(mén)課程的成績(jī),并按照如下格式輸出8070999783926591858876例:15lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第15頁(yè)!3二維數(shù)組3思考重新排列特點(diǎn):像表格一樣具有行和列,每個(gè)變量需要行和列的位置才能確定score16lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第16頁(yè)!3二維數(shù)組3二維數(shù)組的引用1234567891011127第1行第2列數(shù)組aa[1][2]數(shù)組名[行下標(biāo)][列下標(biāo)]

17lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第17頁(yè)!3二維數(shù)組操作4二維數(shù)組元素的引用及基本操作數(shù)組的賦值

for(i=0;i<ROWS;i++)for(j=0;j<COLS;j++)value[i][j]=i+j;數(shù)組的輸入

for(i=0;i<ROWS;i++)for(j=0;j<COLS;j++)scanf(“%d”,&value[i][j]);#defineROWS4#defineCOLS5intvalue[ROWS][COLS];18lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第18頁(yè)!3二維數(shù)組應(yīng)用5例6:判斷給定方陣是否為對(duì)稱(chēng)矩陣。

11021882104139925211361436889914712322536123319lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第19頁(yè)!算法描述

20lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第20頁(yè)!/*判斷矩陣是否對(duì)稱(chēng)并輸出相應(yīng)的結(jié)果*/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數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第21頁(yè)!22#include<stdio.h>#defineROWS2 //矩陣行數(shù)#defineCOLS4 //矩陣列數(shù)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數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第22頁(yè)!3字符數(shù)組2字符數(shù)組的定義charch[10];23lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第23頁(yè)!3字符數(shù)組2字符串在計(jì)算機(jī)中表示“1234”1234\0字符數(shù)組字符串結(jié)束標(biāo)志24lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第24頁(yè)!3字符數(shù)組2字符串的輸入輸出

1、gets(str);2、scanf(“%s”,str);gets()函數(shù)以換行符或文件結(jié)束符EOF作為輸入的結(jié)束標(biāo)志,因此在輸入的字符串中允許包含空格和制表符;scanf()函數(shù)則以空格、制表符、換行符和文件結(jié)束符EOF作為輸入的結(jié)束標(biāo)志,因此,在輸入的字符串中不允許包含這些字符。如果包含了它們,將作為字符串輸入的結(jié)束標(biāo)志處理。

charstr[100];25lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第25頁(yè)!3字符數(shù)組2字符串轉(zhuǎn)換成數(shù)值類(lèi)型

atof(str);atoi(str);atol(str);其中str是一個(gè)字符串。atof()的返回類(lèi)型是double,它可以將字符串str轉(zhuǎn)換成一個(gè)雙精度數(shù)值;atoi()的返回類(lèi)型是int,它可以將字符串str轉(zhuǎn)換成普通整型;atol()的返回類(lèi)型是long,它可以將字符串str轉(zhuǎn)換成長(zhǎng)整型(long)。

26lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第26頁(yè)!#include<stdio.h>#include<stdlib.h>intmain(){charnum1[20],num2[20];doubled1,d2,sum;printf("\nEnterthefirstnumber:");gets(num1); /*輸入第1個(gè)用字符串表示的實(shí)型數(shù)值*/printf("\Enterthssecondnumber:");gets(num2); /*輸入第2個(gè)用字符串表示的實(shí)型數(shù)值*/d1=atof(num1);/*將第1個(gè)字符串轉(zhuǎn)換成double類(lèi)型*/d2=atof(num2);/*將第2個(gè)字符串轉(zhuǎn)換成double類(lèi)型*/sum=d1+d2;/*將2個(gè)double類(lèi)型數(shù)值相加*/printf("\n%s+%s=%.3lf",num1,num2,sum);/*顯示結(jié)果*/return0;}27lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第27頁(yè)!3字符數(shù)組2例2:將用戶(hù)輸入的長(zhǎng)整型(long類(lèi)型)數(shù)值轉(zhuǎn)換成以字符串形式表示的十六進(jìn)制、八進(jìn)制和二進(jìn)制數(shù)值,并顯示輸出。28lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第28頁(yè)!3字符數(shù)組2大小寫(xiě)轉(zhuǎn)換

strlwr(str);strupr(str);str是一個(gè)字符串。標(biāo)準(zhǔn)函數(shù)strlwr()可以將字符串str中出現(xiàn)的所有大寫(xiě)字母轉(zhuǎn)換成小寫(xiě)字母;標(biāo)準(zhǔn)函數(shù)strupr()可以將字符串str中出現(xiàn)的所有小寫(xiě)字母轉(zhuǎn)換成大寫(xiě)字母。29lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第29頁(yè)!3字符數(shù)組200000000letterA的次數(shù)B的次數(shù)C的次數(shù)如何確定每個(gè)字母在letter中的位置呢?A對(duì)應(yīng)letter[0]B對(duì)應(yīng)letter[1]C對(duì)應(yīng)letter[2]下標(biāo):0‘A’-’A’下標(biāo):1‘B’-’A’下標(biāo):2‘C’-’A’30lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第30頁(yè)!3字符數(shù)組2計(jì)算字符串長(zhǎng)度

strlen(str);這個(gè)函數(shù)的功能是返回字符串中所包含的字符個(gè)數(shù),即字符串長(zhǎng)度。字符串結(jié)束標(biāo)志‘\0’不計(jì)算在內(nèi)。字符串比較

strcmp(str1,str2);兩個(gè)字符串進(jìn)行比較時(shí)將依據(jù)每個(gè)字符對(duì)應(yīng)的ASCII編碼決定其大小。

31lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第31頁(yè)!#include<stdio.h>#include<string.h>intmain(){charpassword[20]; /*存放用戶(hù)輸入的密碼*/printf("\nEnterpassword:");gets(password); /*輸入密碼*/

/*檢測(cè)用戶(hù)輸入的密碼,如果不正確,給出提示,并請(qǐng)求重新輸入*/while(strcmp(password,"administrators")!=0){printf("\nInvalidpassword\n\n");printf("Enterpassword,again:");gets(password);}printf("OK");/*輸入正確,顯示"OK"*/return0;}32lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第32頁(yè)!3字符數(shù)組2例5:根據(jù)用戶(hù)的選擇輸出相應(yīng)的字符串。

分析:1、定義好需要輸出的字符串2、從鍵盤(pán)輸入一個(gè)數(shù)3、判斷輸入的數(shù),根據(jù)要求連接成一個(gè)新的字符串后輸出33lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第33頁(yè)!switch(choice){/*根據(jù)用戶(hù)的選擇拼接字符串*/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數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第34頁(yè)!3二維數(shù)組3分析有12個(gè)成績(jī)需要保存,使用數(shù)組長(zhǎng)度為12的一維數(shù)組??intscore[12]數(shù)組排列方式如何區(qū)分是哪門(mén)課程,是第幾個(gè)同學(xué)的成績(jī)?score35lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第35頁(yè)!3二維數(shù)組3在C語(yǔ)言中如何實(shí)現(xiàn)?類(lèi)型數(shù)組名[行長(zhǎng)度][列長(zhǎng)度]intarray[3][4]例:floatd[3][5];inta[6][6];chars[4][10];所有元素都是int數(shù)組名3行4列注意:必須是常量array36lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第36頁(yè)!3二維數(shù)組3在定義二維數(shù)組時(shí),給元素賦初值形式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};×錯(cuò)誤!37lesson11數(shù)據(jù)的組織結(jié)構(gòu)一二維數(shù)組共42頁(yè),您現(xiàn)在瀏覽的是第37頁(yè)!3二維數(shù)組操作4二維數(shù)組元素的引用及基本操作3.數(shù)組的輸出

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論