




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第六章數(shù)組本章目標(biāo)1.了解數(shù)組的數(shù)據(jù)結(jié)構(gòu)2.理解一維和多維數(shù)組的定義和關(guān)系3.了解數(shù)組元素在內(nèi)存的存放規(guī)則4.了解數(shù)組元素和數(shù)組名的作用5.掌握數(shù)組的使用方法6.掌握基本的排序算法整理ppt一、數(shù)組具有的特征數(shù)組名數(shù)組元素的個數(shù)數(shù)組元素的類型。§6.1引言整理ppt二、數(shù)組的作用數(shù)組元素的作用相當(dāng)于簡單變量數(shù)組名代表的是數(shù)組在內(nèi)存中的首地址同一個數(shù)組中的元素在內(nèi)存中是按順序連續(xù)存放的整理ppt§6.2一維數(shù)組一、一維數(shù)組的定義形式:
類型說明符數(shù)組名[常量表達式];例:inta[20];floatx[100];代表數(shù)組元素的個數(shù)其中a和x都是數(shù)組名。整理ppt1.數(shù)組名的確定方法同變量名。2.C語言用方括號[]表示數(shù)組元數(shù)個數(shù)。對于inta[5];表示有5個元素,元素的下標(biāo)從0開始.數(shù)組a的元素分別為:a[0],a[1],a[2],a[3],a[4]整理ppt數(shù)組a在內(nèi)存中的存放順序:a[0]的值a[1]的值a[2]的值a[3]的值a[4]的值:注意:在沒有給數(shù)組元素賦值以前,沒有確定的值。整理ppt二、一維數(shù)組的引用2.引用數(shù)組元素的方式:數(shù)組名[下標(biāo)]1.必須象使用變量那樣,先定義,后使用則a[0]5+a[1]6為正確的算術(shù)表達式例:inta[5];a[0]=1;a[1]=2;:整理ppt例:一維數(shù)組的輸入與輸出。main()
{inti,a[10];for(i=0;i<10;i++)a[i]=i;for(i=0;i<=9;i++)printf(“%4d”,a[i]);}問題?將輸入數(shù)據(jù)按逆序輸出.整理ppt例:一維數(shù)組的輸入與輸出。main()
{inti,a[10];for(i=0;i<10;i++)a[i]=i;for(i=0;i<=9;i++)printf(“%4d”,a[i]);}將輸入數(shù)據(jù)按逆序輸出.
for(i=9;i>0;i--)printf(“%d”,a[i]);整理ppt三、數(shù)組元素賦初值對全部元素賦初值。如:inta[10]={10,11,12,13,14,15,16,17,18,19}表示數(shù)組元素的值為:a[0]=10;a[1]=11;:a[9]=19;整理ppt對部分元素賦初值(前面的連續(xù)元素)。如:在此,只有前5個元素初值確定。intb[10]={0,1,2,3,4};表示數(shù)組元素的值為:b[0]=0;b[1]=1;b[2]=2;b[3]=3;b[4]=4;整理ppt注意:不能只對不連續(xù)部分元素或后面的連續(xù)元素賦初值。語句:
inta[10]={,,,,,1,2,3,4,5};inta[10]={1,,3,,5,,7,,9,,};是錯誤的。整理ppt如對數(shù)組元素賦同一初值,必須一一寫出:staticinta[10]={2,2,2,2,2,2,2,2,2,2};不可寫成任何其他形式。若賦全部元素的初值,可省略常量表達式
inta[]={0,1,2,3};表示a[4],即只有4個元素。整理ppt一、采用循環(huán)方式對數(shù)組元素賦初值§6.3數(shù)組應(yīng)用實例整理ppt二、內(nèi)存與數(shù)組的關(guān)系前面已講過:數(shù)組元素在內(nèi)存中是按順序連續(xù)存放的;重要特性:系統(tǒng)對超出數(shù)組元素的使用不查錯。整理ppt例:#include<stdio.h>main(){inta[5]={0,1,2,3,4},i;charch[5]={'a','b','c','d','e'};for(i=0;i<10;i++)printf("a[%d]=%d,ch[%d]=%c\n",i,a[i],i,ch[i]);printf("%s",ch);}整理ppta[0]=0,ch[0]=aa[1]=1,ch[1]=ba[2]=2,ch[2]=ca[3]=3,ch[3]=da[4]=4,ch[4]=ea[5]=25185,ch[5]=]a[6]=25699,ch[6]=a[7]=23909,ch[7]=a[8]=22,ch[8]=a[9]=285,ch[9]=Abcde]
整理ppt三、一維數(shù)組的應(yīng)用求Fibonacci數(shù)列的前20項。
定義數(shù)組,并賦初值
staticintf[20]={1,1};/*定義數(shù)組的前兩個元素*/注:c規(guī)定只有靜態(tài)數(shù)組static和外部存儲數(shù)組extern才能進行初始化!(對于構(gòu)造數(shù)據(jù)類型如數(shù)組、結(jié)構(gòu)體進行初始化通常定義為靜態(tài)存儲類別)fi=fi-1+fi-2,且f1=f2=1。整理ppt用循環(huán)for求數(shù)列的后18項:注意:下標(biāo)越界問題:i=2且i<20for(i=2;i<20;i++)f[i]=f[i–1]+f[i–2];整理ppt#include<stdio.h>main(){inti;staticintf[20]={1,1};for(i=2;i<20;i++)f[i]=f[i–1]+f[i–2];for(i=0;i<20;i++)
{if(i%5==0)printf("\n");printf("%12d",f[i]);
}}程序如下:整理ppt18899875556106765運行結(jié)果如下:113144159722113315843343774181整理ppt例:歌手比賽,10位評委打分,去掉最高分,最低分,得成績。main(){intscore[10],i,max=-1,min=101,sum=0;floatmark;for(i=0;i<10;i++){printf(“pleaseenterthescore%d:”,i+1);scanf(“%d\n”,&score[i]);sum=sum+score[i];}for(i=0;i<10;i++){if(score[i]>max)max=score[i];if(score[i]<min)min=score[i];}mark=(sum-max-min)/8.0;printf(“Themarkofthissingeris%f\n”,mark);}整理ppt排序過程:(1)比較第一個數(shù)與第二個數(shù),若為逆序a[0]>a[1],則交換;然后比較第二個數(shù)與第三個數(shù);依次類推,直至第n-1個數(shù)和第n個數(shù)比較為止——第一趟冒泡排序,結(jié)果最大的數(shù)被安置在最后一個元素位置上(2)對前n-1個數(shù)進行第二趟冒泡排序,結(jié)果使次大的數(shù)被安置在第n-1個元素位置(3)重復(fù)上述過程,共經(jīng)過n-1趟冒泡排序后,排序結(jié)束例用冒泡法對10個數(shù)排序整理ppt985420例:用冒泡法對10個數(shù)進行排序(冒泡排序法)算法:(從小到大)將兩個相鄰的數(shù)進行比較,將小的數(shù)調(diào)換到前頭.895420859420854920854290854209第一趟結(jié)果第5次第4次第3次第2次第1次5842054820542805420885420第二趟結(jié)果第4次第3次第2次第1次整理pptmain(){inta[11],i,j,t;printf(“input10number:\n”);for(i=1;i<11;i++)scanf(“%d”,&a[i]);printf(“\n”);for(j=1;j<=9;j++)for(i=1;i<=10-j;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}printf(“thesortednumbers:\n”);for(i=1;i<11;i++)printf(“%4d”,a[i]);}將n個數(shù)送入a[1]~a[n]for(j=1ton-1)for(i=1ton-j)
a[i]>a[i+1]fta[i]a[i+1]輸出a[1]~a[n]整理ppt排序過程:(1)首先通過n-1次比較,從n個數(shù)中找出最小的,將它與第一個數(shù)交換—第一趟選擇排序,結(jié)果最小的數(shù)被安置在第一個元素位置上(2)再通過n-2次比較,從剩余的n-1個數(shù)中找出關(guān)鍵字次小的記錄,將它與第二個數(shù)交換—第二趟選擇排序(3)重復(fù)上述過程,共經(jīng)過n-1趟排序后,排序結(jié)束例用簡單選擇法對10個數(shù)排序整理ppt例:用選擇法對10個數(shù)進行排序。(記錄下標(biāo))main(){inta[10],i,j,t,k;for(i=0;i<10;i++)scanf(“%d”,&a[i]);printf(“\n”);for(i=0;i<9;i++){k=i;/*min=>k*/for(j=i+1;j<10;j++)if(a[j]<a[k])k=j;t=a[k];a[k]=a[i];a[i]=t;}printf(“thesortednumbers:\n”);for(i=0;i<10;i++)printf(“%4d”,a[i]);printf(“\n”);}整理ppt§6.4二維數(shù)組一、二維數(shù)組的定義形式:例:inta[4][10];floatx[8][20];類型說明符數(shù)組名[常量表達式1][常量表達式2]整理ppt2.可將二維數(shù)組的元素看成為若干個特殊的一維數(shù)組??煽闯桑河腥齻€特殊的一維數(shù)組b[0],b[1],b[2],每一個又有四個元素:1.不可將定義寫為inta[4,10]。注意:b[0][0],b[0][1],b[0][2],b[0][3],b[1][0],b[1][1],b[1][2],b[1][3],b[2][0],b[2][1],b[2][2],b[2][3],如:intb[3][4];整理ppt3.二維數(shù)組的存放方式為:按行優(yōu)先。由此可推廣至三維、n維數(shù)組的定義和存放。4.初始化:即:最右邊的下標(biāo)變化最快。按行給二維數(shù)組賦初值:staticinta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};或:staticinta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};整理ppt
可以對部分元素賦初值,但需表達清楚。則相當(dāng)于若:staticinta[3][4]={1,2,3,8}則相當(dāng)于如:staticinta[3][4]={{1,2},{3},{8}}。整理ppt可通過賦初值決定數(shù)組大小。如為二維,則只可省略第一維的大小。staticinta[][4]={1,2,3,…,12};整理ppt二、二維數(shù)組元素的引用形式:其中的下標(biāo)為整型表達式,但不得越界。與一維數(shù)組元素一樣,二維數(shù)組元素相當(dāng)于同類型的簡單變量。注意下標(biāo)值應(yīng)在已定義的數(shù)組大小范圍內(nèi);如:inta[2][3];則a[2][3]=3的引用是不合法的。請區(qū)分定義數(shù)組a[2][3]和引用元素a[2][3]的不同。數(shù)組名[下標(biāo)1][下標(biāo)2]整理ppt三、程序舉例a=123456b=142536例:將一個二維數(shù)組行和列元素互換,存到另一個二維數(shù)組中。例如:整理ppt例:將一個二維數(shù)組的行列互換存放到另一個數(shù)組中.即: 12 3 45 6main(){staticinta[2][3]={{1,2,3},{4,5,6}};staticintb[3][2],i,j;printf(“arraya:\n”);for(i=0;i<=1;i++){for(j=0;j<=2;j++){printf(“%5d”,a[i][j]);b[j][i]=a[i][j];}printf(“\n”);}printf(“arrayb:\n”);for(i=0;i<=2;i++){for(j=0;j<=1;j++)printf(“%5d”,b[i][j]);printf(“\n”);}}a=1 42 53 6b=整理ppt例:有一個34的矩陣,求出其中值為最大的元素的值以及它在矩陣中的位置.max=a[0][0]for(i=0to2)for(j=0to3)a[i][j]>maxftmax=a[i][j]row=icolum=j輸出max,row,colum整理ppt#include<stdio.h>main(){inti,j,row=0,colum=0,max;staticinta[3][4]={{1,2,3,4},{9,8,7,6},{-10,-10,-5,2}};max=a[0][0];for(i=0;i<=2;i++)for(j=0;j<=3;j++)if(a[i][j]>max){max=a[i][j];row=i;colum=j;}printf(“max=%d,row=%d,colum=%d\n”,max,row,colum);}整理ppt注意:數(shù)組元素數(shù)據(jù)的輸入必須以循環(huán)方式進行或者定義時置初值。二維數(shù)組一般用二重循環(huán)對每個元素賦值。整理ppt二維數(shù)組與一維數(shù)組的對應(yīng)關(guān)系:6A[0][0]A[0][1]A[0][2]A[0][3]A[1][0]A[1][1]A[1][2]A[1][3]A[2][0]A[2][1]A[2][2]A[2][3]4913138734122A[0]A[1]A[2]A[3]A[4]A[5]A[6]A[7]A[8]A[9]A[10]A[11]整理ppt字符數(shù)組的定義字符數(shù)組的初始化與賦值字符數(shù)組的輸入與輸出字符串處理函數(shù)字符數(shù)組的應(yīng)用舉例字符數(shù)組整理ppt1、字符數(shù)組的定義方法與前面其他類型的數(shù)組的定義相同.數(shù)組類型數(shù)組名[元素個數(shù)]例如:(1)charstring[5]=“ABCD”;(2)charc[10];c[0]=‘I’;c[1]=‘‘;c[2]=‘a(chǎn)’;c[3]=‘m’;c[4]=‘‘;c[5]=‘h’;c[6]=‘a(chǎn)’;c[7]=‘p’;c[8]=‘p’;c[9]=‘y’;c[0]c[1]c[2]c[3]c[4]c[5]c[6]c[7]c[8]c[9]2、要點:數(shù)組類型:必須是char型。元素個數(shù):為實際字符個數(shù)+1,放結(jié)束標(biāo)志字符數(shù)組的定義ABCD\0整理ppt字符串的結(jié)束標(biāo)志“\0”1、字符串的結(jié)束標(biāo)志:“\0”:ASCII碼值為0的字符。在程序中判斷字符串是否結(jié)束不再是依據(jù)字符數(shù)組的長度而是查找字符串的結(jié)束標(biāo)志“\0”.2、例:charstring[]=“abcdef”charstring[]={‘a(chǎn)’,’b’,’c’,’d’,’e’,’f’}整理ppt字符數(shù)組的初始化1、將字符逐一送入字符數(shù)組中,例如:staticcharc[10]={‘I’,‘’,‘a(chǎn)’,‘m’,‘‘h’,‘a(chǎn)’,‘p’,‘p’,‘y’};要點:在給字符數(shù)組賦初值時初值的個數(shù)不能超過字符數(shù)的長度,若初值字符的個數(shù)小于數(shù)組的長度時,字符與數(shù)組前面的元素對應(yīng),其余的元素自動賦值‘\0’(空字符)。字符數(shù)組的大小也可以省略。如:staticcharc[]={‘b’,‘o’,‘o’,‘k’};請區(qū)別字符數(shù)組與字符串的不同2、對一批字符的描述3、字符數(shù)組的賦值4、例整理ppt對一批字符的描述1、方法:采用二維數(shù)組來描述,數(shù)組的第一維為字符串的個數(shù),第二維的元素個數(shù)為字符串中最長字符個數(shù)+1。2、例:charmenu[3][20+1]={“1----Openfile”,“2----Closefile”,“3----ExittoDOS”}staticchardiamond[5][5]={“*”,”**”,”**”,”**”,”*”}整理ppt字符數(shù)組的賦值1、在c語言中對字符串賦初值可以寫成:staticcharc[]={“Iamhappy”};或staticcharc[]=“Iamhappy”;這里字符數(shù)組的長度不是10,而是11。2、將一個字符串賦值給一個字符數(shù)組,只能用在賦初值的情況下,不能用在賦值語句中.例如:charstr[11];str=“Iamhappy”;是錯誤的.整理ppt字符串及其結(jié)束標(biāo)志無字符串變量,用字符數(shù)組處理字符串字符串結(jié)束標(biāo)志:‘\0’例“hello”共5個字符,在內(nèi)存占6個字節(jié)字符串長度5
hello\01041011081081110內(nèi)存存放字符ASCII碼字符串整理ppt例:字符數(shù)組元素的引用。main(){staticcharc[10]={‘I’,‘’,‘a(chǎn)’,‘m’,‘’,‘h’,‘a(chǎn)’,‘p’,‘p’,‘y’};inti;for(i=0;i<10;i++)printf(“%c”,c[i]);printf(“\n”);}運行結(jié)果:Iamhappy試charc[10]=“Iamhappy”整理ppt例:輸出一個鉆石圖形。main(){staticchardiamond[5][5]={{‘‘,’’,’*’},{‘‘,’*’,’‘,’*’},{’*’,’‘,’‘,’‘,’*’},\{‘‘,’*’,’‘‘,’*’},{‘‘,’‘,’*’}};inti,j;for(i=0;i<5;i++){for(j=0;j<5;j++)printf(“%c”,diamond[i][j]);printf(“\n”);}}運行結(jié)果:********整理ppt字符串的輸入與輸出一、逐個字符的輸入與輸出用格式符“%c”輸入或輸出一個字符。二、將整個字符串一次輸入或輸出,用“%s”。如:staticcharc[]={“china”};printf(“%s”,c);三、要點:輸出字符不包括結(jié)束符“\0”.用“%s”時,printf中輸出項是字符數(shù)組名,而不是元素名。
printf(“%s”,c[0])錯若數(shù)組長度大于字符串實際長度,也只輸出到‘\0’結(jié)束。
charc[10]={“China”};printf(“%s”,c);結(jié)果:China若一個字符數(shù)組中包含一個以上的‘\0’,則遇到第一個‘\0’時就結(jié)束輸出。整理ppt字符串的輸入與輸出1.用“%c”格式輸出單個字符.例如:staticcharstr[]=“book”;for(i=0;i<4;i++)printf(“%c”,str[i]);2.用“%s”格式輸出字符串.例如:staticcharstr[]=“book”;printf(“%s”,str);3.利用scanf(“%s”,str);輸入字符串時,輸入項只寫字符數(shù)組的名稱不加地址.
(C語言規(guī)定:數(shù)組名代表數(shù)組的起始地址)當(dāng)利用“%s”格式輸入多個字符串時,
這些字符串應(yīng)以空格作為它們的分割符.在空格的位置上放上‘\0’。整理pptstaticcharstr1[5],str2[5],str3[5];scanf(“%s%s%s”,str1,str2,str3):輸入數(shù)據(jù):howareyou?在內(nèi)存中數(shù)據(jù)的存儲情況為:str1==“how”str2==“are”str3==“you?”如果有:charstr[13];scanf(“%s”,str);輸入數(shù)據(jù)為:howareyou?在內(nèi)存中數(shù)據(jù)的存儲情況為:str==“how”空格后面的字符沒有作為有效字符來接受.所以C語言提供了豐富的字符串處理函數(shù)解決編程負擔(dān)。整理ppt字符串處理函數(shù)(包含在頭文件“string.h”中)1.puts()功能:將一個字符串輸出到終端,輸出時自動將“\0”轉(zhuǎn)化為“\n”.charstr[]=“China\nBeijing”;puts(str);2.gets()功能:從終端輸入一個字符串到字符數(shù)組中.回車結(jié)束并返回字符數(shù)組的首地址.其中可以包含空格字符。3.strcat(str1,str2)功能:將兩個字符串連接起來并把結(jié)果存放在第一個字符串中.要點:(1)字符數(shù)組1必須足夠大足以存放兩個字符串;(2)兩個字符串連接后第一個字符串后面的“\0”被自動取消.只保留最后的一個“\0”.Charstr1[30]=“Iam”;charstr2[]=“teacher”;printf(“%s”,strcat(str1,str2));整理ppt4.strcpy(str1,str2)功能:將字符串2拷貝到字符串1中.要點:(1)字符串1必須足夠大,足以存放字符串2.(2)字符串2可以是字符數(shù)組名也可以是字符串常量,但第一個必須為字符數(shù)組名.(3)對于字符數(shù)組不能使用賦值語句進行整體賦值.(4)可以使用strcpy(str1,str2,3)的形式將字符數(shù)組2中的前面3個字符拷貝到字符數(shù)組1中.5.strcmp(str1,str2)功能:比較兩個字符串的大小.(逐個比較兩個字符串的ASCII的值.)要點:(1)str1=str2………….函數(shù)值為0;(2)str1>str2………….函數(shù)值為正數(shù)(3)str1<str2………….函數(shù)值為負數(shù)整理ppt6.strlen(str)功能:測量字符數(shù)組的長度,不包括“\0”.7.strwr(str)功能:將大寫字母轉(zhuǎn)換為小寫字母.8.strupr(str)功能:將小寫字母轉(zhuǎn)換為大寫字母.例:當(dāng)執(zhí)行下面的程序且輸入ABC時,輸出結(jié)果為:#include<stdio.h>main()
{charss[10]=“12345”;strcat(ss,”6789”);
運行結(jié)果:ABCgets(ss);printf(“%s”,ss);}整理ppt[例]gets函數(shù)和strcmp函數(shù)的應(yīng)用。#include<stdio.h>main(){charpass_str[80]; /*定義字符數(shù)組passstr*/inti=0;/*檢驗密碼*/while(1){clrscr();printf("請輸入密碼\n");gets(pass_str);/*輸入密碼*/if(strcmp(pass_str,“password”)!=0) /*口令錯*/printf("口令錯誤,按任意鍵繼續(xù)");elsebreak;/*輸入正確的密碼,中止循環(huán)*/getch();i++;if(i==3)exit(0);/*輸入三次錯誤的密碼,退出程序*/}/*輸入正確密碼所進入的程序段*/}整理ppt例:程序main()
{charch[10];scanf(“%s”,ch);printf(“%s”,ch);}執(zhí)行時,若從鍵盤輸入GoodMorning,則輸出為:A.GoodMorningB.GoodC.GoodMorni
D.GoodMorn b整理ppt
How\0
are\0
you?\0
#include<stdio.h>main(){chara[15],b[5],c[5];
scanf("%s%s%s",a,b,c);printf("a=%s\nb=%s\nc=%s\n",a,b,c);
scanf("%s",a);printf("a=%s\n",a);}運行情況:輸入:Howareyou?輸出:a=Howb=arec=you?輸入:Howareyou?輸出:a=Howscanf中%s輸入時,遇空格或回車結(jié)束運行情況:輸入:Howareyou?例字符串輸入舉例整理ppt例:程序main()
{charch[10];gets(ch);printf(“%s”,ch);}執(zhí)行時,若從鍵盤輸入GoodMorning,則輸出為:A.GoodMorningB.GoodC.GoodMorni D.GoodMorn a整理pptmain(){inti;chara[5];scanf("%s",a);for(i=0;i<5;i++)printf("%d,",a[i]);}運行情況:(1)若輸入hel,正常(2)若輸入hell,正常(3)若輸入hello,用%s輸出時,會出現(xiàn)問題
hel\0
hell\0
hello輸入字符串長度<數(shù)組維數(shù)例子整理ppt包含在頭文件string.h字符串輸出函數(shù)puts格式:puts(字符數(shù)組)功能:向顯示器輸出字符串(輸出完,換行)說明:字符數(shù)組必須以‘\0’結(jié)束字符串輸入函數(shù)gets格式:gets(字符數(shù)組)功能:從鍵盤輸入一以回車結(jié)束的字符串放入字符數(shù)組中,并自動加‘\0’說明:輸入串長度應(yīng)小于字符數(shù)組維數(shù)常用的字符串處理函數(shù)
整理ppt包含在頭文件string.h例#include<stdio.h>main(){charstring[80];printf(“Inputastring:”);gets(string);puts(string);}輸入:Howareyou?輸出:Howareyou?
常用的字符串處理函數(shù)
整理ppt字符串連接函數(shù)strcat格式:strcat(字符數(shù)組1,字符數(shù)組2)功能:把字符數(shù)組2連到字符數(shù)組1后面返值:返回字符數(shù)組1的首地址說明:字符數(shù)組1必須足夠大
連接前,兩串均以‘\0’結(jié)束;連接后,串1的‘\0’取消,
新串最后加‘\0’字符串拷貝函數(shù)strcpy格式:strcpy(字符數(shù)組1,字符串2)功能:將字符串2,拷貝到字符數(shù)組1中去返值:返回字符數(shù)組1的首地址說明:字符數(shù)組1必須足夠大
拷貝時‘\0’一同拷貝
不能使用賦值語句為一個字符數(shù)組賦值例charstr1[20],str2[20];str1={“Hello!”};()str2=str1;()常用的字符串處理函數(shù)(1)整理ppt字符串比較函數(shù)strcmp格式:strcmp(字符串1,字符串2)功能:比較兩個字符串比較規(guī)則:對兩串從左向右逐個字符比較(ASCII碼),直到遇到不同字符或‘\0’為止返值:返回int型整數(shù),a.若字符串1<
字符串2,返回負整數(shù)
b.若字符串1>
字符串2,返回正整數(shù)
c.若字符串1==字符串2,返回零說明:字符串比較不能用“==”,必須用strcmp字符串長度函數(shù)strlen格式:strlen(字符數(shù)組)功能:計算字符串長度返值:返回字符串實際長度,不包括‘\0’在內(nèi)例對于以下字符串,strlen(s)的值為:(1)chars[10]={‘A’,‘\0’,‘B’,‘C’,‘\0’,‘D’};(2)chars[]=“\t\v\\\0will\n”;(3)chars[]=“\x69\082\n”;答案:131常用的字符串處理函數(shù)(2)整理ppt#include<string.h>#include<stdio.h>main(){charstr1[]=”Hello!",str2[]=”Howareyou?”,str[20];intlen1,len2,len3;
len1=strlen(str1);len2=strlen(str2);
if(strcmp(str1,str2)>0){strcpy(str,str1);strcat(str,str2);}
elseif(strcmp(str1,str2)<0){strcpy(str,str2);strcat(str,str1);}elsestrcpy(str,str1);len3=strlen(str);puts(str);printf(”Len1=%d,Len2=%d,Len3=%d\n”,len1,len2,len3);}Howareyou?Hello!Len1=6,Len2=12,Len3=18例strcmp與strlen舉例
整理ppt例題整理ppt例:有一個一維數(shù)組,內(nèi)放10個學(xué)生成績,寫一個函數(shù),求出平均分、最高分和最低分。floatmax=0,min=0;main()floataverage(array,n){floatave,score[10];floatarray[];intn;inti;{inti;for(i=0;i<10;i++)floataver,sum=array[0];scanf(“%f”,&score[i]);max=min=array[0];ave=average(score,10);for(i=0;i<n;i++)printf(“%6.2f,%6.2f,%6.2f\n”,{if(array[i]>max)max=array[i];max,min,ave);}elseif(array[i]<min)min=array[i];sum=sum+array[i];}aver=sum/n;return(aver);}整理ppt
二維數(shù)組應(yīng)用舉例
【例】給矩陣a賦值,并輸出該矩陣的值。
main(){inta[3][3]={1,2,3,4,5,6,7,8,9},i,j;for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%5d",a[i][j]);printf("\n");}}
該程序的運行結(jié)果如下:
123456789整理ppt
字符串應(yīng)用舉例
【例】下面程序的功能是:將字符數(shù)組a中下標(biāo)值為偶數(shù)的元素從小到大排列,其它元素不變。
#include<stdio.h>#include<string.h>main(){chara[]=”clanguage”,t;inti,j,k;k=strlen(a);整理pptfor(i=0;i<=k-2;i+=2)for(j=i+2;j<k;j++)if(a[i]>a[j]){t=a[i];a[i]=a[j];a[j]=t;}puts(a);printf(“\n”);}
運行結(jié)果為:alancuegg。整理ppt作業(yè):整理ppt例:汽車固定速度前進,里程表為一對稱數(shù)95859,兩小時后里程表又為一新對稱數(shù)。求車速及新對稱數(shù)
main(){intt,j,a[5];longinti,temp,k;for(i=95859+1;;i++){temp=i;k=10000;for(t=0;t<5;t++){a[t]=temp/k;temp=temp%k;k=k/10;}if((a[0]==a[4])&&(a[1]==a[3])){for(j=0;j<5;j++)printf(“%d”,a[j]);printf(“NewVelocityis:%d\n”,(i-95859)/2);break;}}}整理ppt作業(yè):有4個學(xué)生,每人3門課。已知各課成績,求每門課的平均成績和每個學(xué)生的平均成績。Cour1cour2cour3stud1788692stud2627365stud3909395stud4827385整理ppt作業(yè):將一個數(shù)組中的值按逆序重新存放。例:原序:8,6,5,4,1改為:1,4,5,6,8
整理pptMain(){inti,j;floatsum,stud_ave[4],cour_ave[3];staticfloatscore[4][3]={{78,86,92},{62,73,65},{90,93,95},{82,73,86}};for(i=0;i<=3;i++){sum=0.0;for(j=0;j<=2;j++)sum=sum+score[i][j];stud_ave[i]=sum/3;printf(“average%dis:%6.2f\n”,i+1,stud_ave[i]);}for(j=0;j<=2;j++){sum=0.0;for(i=0;i<=3;i++)sum=sum+score[i][j];cour_ave[j]=sum/4;printf(“aceragecourse%dis:%6.2f\n”,j+1,cour_ave[j]);}}
作業(yè):有4個學(xué)生,每人3門課。已知各課成績,求每門課的平均成績和每個學(xué)生的平均成績。整理ppt作業(yè):將一個數(shù)組中的值按逆序重新存放。例:原序:8,6,5,4,1改為:1,4,5,6,8
main(){intn=5,I,temp;staticinta[5]={8,6,5,4,1}for(i=0;i<n/2;i++){temp=a[i];a[i]=a[n-i-1];a[n-i-1]=temp;}for(I=0;i<n;i++)printf(“%4d”,a[i]);}整理ppt例:分析下面的程序,寫出結(jié)果.main(){intn[3][3],i,j;for(i=0;i<3;i++)for(j=0;j<3;j++) n[i][j]=i+j;for(i=0;i<2;i++)for(j=0;j<2;j++) n[i+1][j+1]+=n[i][j];printf(“%d\n”,n[i][j]);}運行結(jié)果為:6整理ppt例:分析下面的程序,寫出結(jié)果.main(){inti=0;chars1[10]=“abc”,s2[10]=“efg”;strcat(s1,s2);while(s1[i++]!=‘\0’)s2[i]=s1[i];puts(s2);}運行結(jié)果為:整理ppt作業(yè):由鍵盤輸入三個英文單詞,將其按從小到大的順序排列輸出。整理ppt#include“string.h”#include“stdio.h”voidmain(){chars[3][20],t[20];inti,j;for(j=0;j<3;j++)gets(s[j]);for(i=0;i<2;i++)for(j=0;j<2-i;j++)if(strcmp(s[j],s[j+1])>0){strcpy(t,s[j]);strcpy(s[j],s[j+
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 離婚財產(chǎn)合同范本模板
- 合股餐廳合同范本
- 輪胎店轉(zhuǎn)讓合同范本
- 醫(yī)美會員合同范本模板
- 紡織原料采購合同范本
- 企業(yè)向個人租房合同范本
- 危險廢物管理處理合同范本
- 單位采購空調(diào)合同范本
- 個人債權(quán)轉(zhuǎn)讓合同范本
- 裝飾設(shè)計合同范本
- 高中英語-Unit 2 Reading and Thinking A day in the clouds教學(xué)課件設(shè)計
- 新聞采訪與寫作課件第十九章融合報道
- 《消防專篇》編制規(guī)定
- 常用小學(xué)生詞語成語積累歸類大全
- 提高出院患者隨訪率持續(xù)改進項目
- 工人合同協(xié)議書模板
- 點心主管工作職責(zé)
- 《電競俱樂部管理》教案
- 《建筑工程建筑面積計算規(guī)范》與房產(chǎn)測繪面積計算規(guī)范細則的區(qū)別
- 電力需求側(cè)自測題4科
- 2023年教師資格證考試歷年小學(xué)綜合素質(zhì)寫作題及范文
評論
0/150
提交評論