《數(shù)組編程習(xí)題解答》PPT課件.ppt_第1頁
《數(shù)組編程習(xí)題解答》PPT課件.ppt_第2頁
《數(shù)組編程習(xí)題解答》PPT課件.ppt_第3頁
《數(shù)組編程習(xí)題解答》PPT課件.ppt_第4頁
《數(shù)組編程習(xí)題解答》PPT課件.ppt_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)組編程講解,2.求一個3*3的整型矩陣對角線之和,對角線元素怎樣描述?,int sum=0 , i , a33; for(i = 0; i 3; i+) sum=sum+ aii ; ,aii,printf (對角線之和=%6d , sum);,3. 輸入一個數(shù), 將其插入到一個已排好序的數(shù)組中, 使得原數(shù)組依然按原序有序。,main() int a10=5, 12, 39, 60, i, x; scanf(%d, ,4. 將一個數(shù)組中的值按逆序存放。,0,1,2,3,4,5,6,7,8,9,原序,逆序,for ( i=0 ; i 10/2 ; i+) temp=ai; ai=an-1-i;

2、 an-1-i=temp; /* n 為數(shù)組元素的個數(shù)。,5. 有一篇文章, 有三行文字, 每行有80 個字符。要求統(tǒng)計出其中英文大寫字母、小寫字母、數(shù)字、空格以及其他字符的個數(shù),三行文字的存放方式: 二維字符數(shù)組 ch380; 各類字符的個數(shù)變量: 大寫英文字母的個數(shù):uppercase 小寫英文字母的個數(shù):smallletter 數(shù)字個數(shù):digit 空格個數(shù):blank 其他字符個數(shù):others,處理方式:,for(i=0;i=A ,6.打印以下圖案:, , ,0,for(i=0; i5; i+) for( j=0;ji; j+) putchar( ); puts(ch); putch

3、ar(n); ,a,p,p,l,e,ch1,0,a,p,p,l,e,ch2,0,char ch180, ch280; int i; for(i=0; i80; i+) ch2i= ; gets(ch1); i=0; do ch2i=ch1i; while (ch1i);,7. 字符串復(fù)制,習(xí)題,1 將10個整數(shù)放到一維數(shù)組中,并按從大到小排序。,定義一個一維整數(shù)數(shù)組: char a10;,printf(請輸入10個整數(shù):n); for(i=0;i10;i+) scanf(%d,輸入10個整數(shù):,對數(shù)組 a 進行排序: 因題目未指定排序方法,所以,可以使用任何方法排序。,對數(shù)組 a 進行排序(選

4、擇法),for( i=0; ia p ) p=j; if( p!=i) med=a i; a i=a p; a p=med; ,程序:,for( i=0; ia p ) p=j; if( p!=i) med=a i; a i=a p; a p=med; for( i=0; in; i+) printf(%6d, ai); printf(n); ,#include #define n 10 void main() int an, i, j, p, med; printf( please input ); printf( %d integers: , n); for( i=0; in; i+) s

5、canf( %d, ,2. 將20個整數(shù)放到一維數(shù)組中,輸出該數(shù)組中的最大值和最小值。,定義一個一維整數(shù)數(shù)組: char a20;,printf(請輸入20個整數(shù):n); for(i=0;i20;i+) scanf(%d,輸入20個整數(shù):,找出數(shù)組 a 中的最大值和最小值:,.找出數(shù)組 a 中的最大值和最小值:,設(shè): max中存放最后找到的最大值; min中存放最后找到的最小值; 不妨設(shè):max=a0; min=a0; for ( i = 0; imax ) max=ai; else if( a imin) min=a i;,#include #define n 20 void main()

6、int an, i, max, min; printf( please input ); printf( %d integers: , n); for( i=0; imax ) max=ai; else if( a imin) min=a i; printf( the largest number is %6dn, max); printf( the least number is %6dn, min); ,3. 將15個整數(shù)放到一維數(shù)組中,輸出該數(shù)組中的最大值它的下標(biāo)。然后將它和數(shù)組中的最前面的元素對換。,(1) 定義一個一維整數(shù)數(shù)組: char a15;,printf(請輸入15個整數(shù):n

7、); for( i=0;i15;i+) scanf( %d, ,(2)輸入15個整數(shù):,(3)找出數(shù)組 a 中的最大值和它的下標(biāo):,(3) 找出數(shù)組 a 中的最大值和它的下標(biāo):,設(shè): max中存放最后找到的最大值; k中存放最后找到的最大值的下標(biāo); 不妨設(shè):max=a0; k=0; for ( i = 0; imax ) max=ai; k=i; ,(4) 數(shù)組 a 中的最大值和第一個數(shù)組元素交換:,用temp作為臨時變量 交換語句為: temp=a k; ak=a0; a0=temp;,#include #define n 15 void main() int an, i, max, k;

8、printf( please input ); printf( %d integers: , n); for( i=0; imax ) max=ai; k=i; ak=a0; a0=max; printf( the largest number is %6dn, max); printf( the largest numbers order is %6dn, k); ,4. 將一維數(shù)組中的數(shù)逆序存放,不使用輔助數(shù)組。,#define n 10 定義一個一維整數(shù)數(shù)組: char an;,printf(請輸入%d個整數(shù):n, n); for( i=0;in;i+) scanf( %d, ,輸入n個

9、整數(shù):,將一維數(shù)組中的數(shù)逆序存放:,a i =a ;,a =temp; ,方法:將數(shù)組a中正數(shù)和倒數(shù)位置對應(yīng)相同的元素對調(diào)。(正數(shù)第1個和倒數(shù)第1個,正數(shù)第2個和倒數(shù)第2個, ,正數(shù)第 i 個和倒數(shù)第 i個 ) i 的最后一個值是什么?,將一維數(shù)組中的數(shù)逆序存放:,n/2,for ( i = 0; in/2; i+) ,n-i-1,n-i-1,temp= a i ;,#include #define n 10 void main() int an, i, temp ; printf( please input ); printf( %d integers: , n); for( i=0; in

10、; i+) scanf( %d, ,5. 有一封信共有3行,每行20個字符,統(tǒng)計其中有多少英文大寫字母,多少英文小寫字母,多少數(shù)字字符,多少空格。,定義一個字符數(shù)組: char str30;,printf(請輸入一行字符:n); gets(str);,輸入一行字符:,對字符數(shù)組中的字符進行統(tǒng)計:,3. 對字符數(shù)組中的字符進行統(tǒng)計:,for( i=0; stri !=0; i+),if (stri=A,完整程序:,#include #include void main() int i, j, uplet=0, digit=0, space=0, lowlet=0; char str30; pri

11、ntf(現(xiàn)在開始統(tǒng)計. :n); for(j=0; j3; j+) printf(請輸入第 %d 行字符:n ,j+1); gets(str); for(i=0; stri !=0; i+),if (stri=A ,6. 將字符數(shù)組str1中下標(biāo)為偶數(shù)的元素賦給另一字符數(shù)組str2,并輸出str1和str2。,定義兩個字符數(shù)組: char str130, str230;,printf(請輸入一行字符:n); gets(str1);,輸入一行字符到str1中:,對字符數(shù)組中的進行復(fù)制:,3. 對字符數(shù)組中的字符進行復(fù)制:,for( i=0,j=0; stri !=0; i+),if (i%2=0

12、) str2j=str1i; j+;,完整程序:,#include #include void main() int i, j; char str130, str230; printf(請輸入一 行字符:n ); gets(str1); for(i=0,j=0; str1i !=0; i+) if (i%2=0) str2j=str1i; j+; str2j=0; printf(復(fù)制之前: %snn, str1); printf(復(fù)制之后: %snn, str2); ,7. 有5個國家名,要求按字母先后順序排列,并按序輸出。,定義一個二維字符數(shù)組: char str1510;,for(i=0;

13、i5;i+) printf(請輸入一行字符:n); gets(str1i);,輸入5行字符到str1中:,對字符數(shù)組中的字符串進行排序:,3.對字符數(shù)組中的字符串進行排序:,for( i=0; i4; i+),for( j=0; j0) strcpy( temp, str1j); strcpy( str1j, str1j+1); strcpy( strj+1, temp); ,#include #include void main() int i, j; char str1510, temp10; for(i=0;i0) strcpy( temp, str1j); strcpy( str1j,

14、 str1j+1); strcpy( str1j+1, temp); printf(排序之后: nn); for(i=0;i5;i+) puts(str1i); ,8. 有一行文字,要求刪去某個字符,此行文字和要刪的字符均由鍵盤輸入。,定義一個一維字符數(shù)組: char str 80,c;,printf(請輸入一行字符:n); gets(str); Scanf( “%c”,輸入一行字符到str中,待刪去的字符到c中:,對字符數(shù)組中的字符進行處理:,3.對字符數(shù)組中的字符進行處理:,for(i=0; str1i !=0; i+),if (str1i=c ) break;,for( j=i+1; s

15、tr1j !=0; j+),str1j-1= str1j;,str1j-1= str1j;,#include #include void main() int i, j, flag=1; char str80, c; printf(請輸入一行字符:n); gets(str); printf(請輸入要刪出的字符:n); scanf(%c, ,9. 打印出楊輝三角,要求打印出n行,n由鍵盤輸入。,定義一個一維整數(shù)數(shù)組: int a 80,n;,printf(“請輸入楊輝三角的行數(shù):n); scanf( “%d”,輸入n值到n中:,對數(shù)組a中的元素進行計算產(chǎn)生楊輝三角的每一行,并輸出:,3.對數(shù)組a

16、中的元素進行計算產(chǎn)生楊輝三角的每一行,并輸出:,for(i=2; in; i+),ai+1=1;,aj= aj-1+aj;,a0=1; printf(“%6dn”, a0);,a1=1; printf(“ %6d%6dn”, a0, a1);,for( j=i; j1; j-),#include #include void main() int i, j, a80, m; printf(請輸入楊輝三角的行數(shù):n); scanf( %d, ,10. N只猴子選大王,選舉方法如下:所有猴子按1,2,3, ,N編號圍坐一圈,從第1個猴子開始報數(shù),報到M號退出圈外,如此循環(huán)報數(shù),直到圈內(nèi)只剩下一個猴子

17、,即為大王。編程輸出大王的原始序號。N和M的值由鍵盤輸入。如果你想成為剩下的那一個,在N一定的情況下,你應(yīng)該站在什么位置上?,#define n 100 定義一個一維整數(shù)數(shù)組: int a n,m;,printf(“將猴子的編號送入相應(yīng)位置的數(shù)組中); for( i=0; in; i+) ai=i+1;,為數(shù)組賦值:,對數(shù)組a中的元素進行處理:,解決問題:,3.對數(shù)組a中的元素進行處理:,for( i=1; im; i+) if( aj!=0) j=(j+1)%n; j=+j%n; printf(“%d 號猴子出列n”, j+1 ); aj=0; k-;,j=0; k=n;/*現(xiàn)在,圈中還剩下

18、的猴子個數(shù)。,while(k1)/*圈中還剩下兩個以上的猴子*/,#include #include void main() int i, j, a100=, m,n,k; printf(請輸入猴子的個數(shù):n); scanf( %d,while(im) while(aj=0) j=(j+1)%n; i+; j=(j+1)%n; while(aj=0) j=(j+1)%n; printf(%d 號猴子出列n, aj ); aj=0; k-; for(i=0;in;i+) if( ai ) printf(最后的大王為:%6d號猴子!n, ai); ,11. 編寫一個程序,將兩個字符串連接起來。不要

19、使用strcat函數(shù),定義三個一維字符數(shù)組: char str180, str220;,printf(“請輸入一行字符到str1中:n); gets(str1); printf(“請輸入另一行字符到str2中:n); gets(str2);,分別輸入2行字符到str1, str2中:,將兩個字符數(shù)組進行連接:,3.將兩個字符數(shù)組進行連接:,for( i=0; str1i!=0; i+);/*將str1的下標(biāo)移到最后一個字符的后面 */,str1i+=str2j;,for( j=0; str2j!=0; j+),str1i=0;,#include #include void main() int

20、 i, j; char str180, str220; printf(請輸入一行字符到str1中:n); gets(str1); printf(請輸入另一行字符到str2中:n); gets(str2); printf(連接之前str1: ); puts(str1); printf(連接之前str2: ); puts(str2); for( i=0; str1i!=0; i+); for( j=0; str2j!=0; j+) str1i+=str2j; str1i=0; printf(連接之后str1: ); puts(str1); ,12. 編寫一個程序,將字符數(shù)組a中的全部字符復(fù)制到字符

21、數(shù)組b中。不要使用strcpy函數(shù)。,定義兩個一維字符數(shù)組: char a80, b80;,printf(“請輸入一行字符到a中:n); gets(a);,輸入1行字符到a中:,進行字符數(shù)組復(fù)制:,3.進行字符數(shù)組復(fù)制:,for( i=0; ai!=0; i+),bi=ai;,bi=0;,#include #include void main() int i; char a80, b80= ; printf(請輸入一行字符到a中:n); gets(a); printf(n); printf(復(fù)制之前a: ); puts(a); printf(n); printf(復(fù)制之前b: ); puts(

22、b); printf(n); for( i=0; ai!=0; i+) bi=ai; bi=0; printf(復(fù)制之后a: ); puts(a); printf(復(fù)制之后b: ); puts(b); ,13. 編寫一個程序,找出3個字符串中的最大者。將它輸出。,定義兩個一維字符數(shù)組: char a80, b80;,printf(“請輸入一行字符到a中:n); gets(a);,輸入1個字符串到a中:,依次輸入另外兩個字符串到b中,并和a比較,如果,ba,將b的值賦給a;,3.依次輸入另外兩個字符串到b中,并和a比較,如果,ba,將b的值賦給a;,for( i=1; i3; i+),if (strcmp( b, a) strcpy( a, b ); ,printf( “最大的字符串是: ”); puts(a);, printf(“請輸入一行字符到b中:n); gets(b);,#include #include #define n 3 void main() int i; char a80,

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論