C語言編程練習(xí)之?dāng)?shù)組_第1頁
C語言編程練習(xí)之?dāng)?shù)組_第2頁
C語言編程練習(xí)之?dāng)?shù)組_第3頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、輸出整數(shù)各位數(shù)字輸入格式:輸出格式:輸入樣例:123456輸出樣例:1 2 3 4 5 6(1)編程思路。將一個非負(fù)整數(shù)number 各位上的數(shù)字依次分離出來,其操作步驟為: 1)分離出number 的個位數(shù),即number%10。2)將number 10,作為新的number,即新的number 丟掉了個位數(shù)。3)如果number 01)步,繼續(xù)顯示。例如,number=1234,number%10=4, number=1234/10=123number%10=3, number=123/10=12,得到數(shù)字 3; number%10=2, number=12/10=1, 得 到 數(shù) 字 2

2、; number%10=1, number=1/10=0,得到數(shù)字 1;結(jié)束。將分離的各位數(shù)字依次存儲到數(shù)組a 中,然后逆序輸出數(shù)組a 中保存的各元素值即可。(2)源程序。#include int main()long long n; scanf(%lld,&n);int a20=0,cnt=0; while (n!=0)n=n/10;if (cnt=0)printf(0 n);elsefor (int i=cnt-1;i=0;i-) printf(%d ,ai);printf(n);return 0;冒泡法排序?qū)?N N1 個元素進(jìn)行第二遍掃描。依此類推,最后只需處理兩個元素,就完成了對N

3、個數(shù)的排序。本題要求對任意給定的,輸出掃描完第K 輸入格式:輸入在第1 行中給出N 和1102 行中給出N 輸出格式:在一行中輸出冒泡排序法掃描完第 K 遍后的中間結(jié)果數(shù)列,數(shù)字間以空格分隔,但末尾不得有多余空格。輸入樣例:6 22 3 5 1 6 4輸出樣例:2 1 3 4 5 6編程思路。前k 趟冒泡排序描述為for(i=0;ik;i+)/ a0an-1-i從頭到尾對前后相鄰兩數(shù)進(jìn)行比較,逆序則交換for (j=0;jaj+1)t=aj; aj=aj+1; aj+1=t;#include int main()int int n,k;int i,j,t;for (i=0;in;i+) sca

4、nf(%d,&ai);for (i=0;ik;i+)for (j=0;jaj+1)t=aj; aj=aj+1; aj+1=t;printf(%d,a0); for (i=1;in;i+)printf( %d,ai); printf(n);return 0;評委打分!10 1 5 10 ?輸入格式:第一行有十個整數(shù),表示十位同學(xué)的初始分。第二行一個整數(shù)n,表示有 n 道題競賽。 接下去有n 行,每行有一個數(shù)字x,x 表示本次可以加分的選手序號(每次答對者得10 分。輸出格式:10 輸入樣例:10 0 0 0 10 10 0 0 0 1031101輸出樣例:30 0 0 0 10 10 0 0 0

5、 20編程思路。int a1a10110 的選手的得分。每次輸入本次可以加分的選手序號x ax10 分即可。源程序。#include int main()int a11; int i;for (i=1;i=10;i+) scanf(%d,&ai);int n,k; scanf(%d,&n); for (i=1;i=n;i+)scanf(%d,&k); ak+=10;printf(%d,a1); for printf( %d,ai); printf(n);return 0;組合數(shù)的和給定 N 個非 0 的個位數(shù)字,用其中任意 2 個數(shù)字都可以組合成 1 個 2 位的數(shù)字。要求所有可能組合出來的

6、2 位數(shù)字的和。例如給定 2、5、8,則可以組合出:25、28、52、58、82、85,它們的和為 330。輸入格式:輸入在一行中先給出 1 N 10 ,隨后給出 N 個不同的非 0 格分隔。輸出格式:2 輸入樣例:3 2 8 5輸出樣例:3301。定義數(shù)組 int a10;保存輸入的 N 個非 0 的個位數(shù)字,用二重循環(huán)組成兩位數(shù)并求和。for(i=0;in;i+)/aifor (j=0;jn;j+)/ 取得個位數(shù)字 ajif(i=j)continue;/ 個位數(shù)字和十位數(shù)字不能取同一個數(shù)字s=s+10*ai+aj;1#include int main()int n; scanf(%d,&n

7、); int a10;int i,j;for (i=0;in;i+) scanf(%d,&ai);int sum=0;for (i=0;in;i+) for if (j=i) continue; sum+=ai*10+aj;printf(%dn,sum); return 0;2。用二重循環(huán)for (i=0;in-1;i+)for (j=i+1;jn;j+)n aiaj,這兩個數(shù)字可以構(gòu)成兩10*ai+aj10*aj+ai。2。#include int main()int n; scanf(%d,&n); int a10;int i,j;for (i=0;in;i+) scanf(%d,&ai)

8、;int sum=0;for (i=0;in-1;i+) for sum+=11*(ai+aj);printf(%dn,sum); return 0;數(shù)字加密10 取余, 12579 01464601。輸入格式:輸入在一行中給出一個四位的整數(shù)x輸出格式: encrypted number is ”輸出加密后得到的新數(shù)V。輸入樣例:1257輸出樣例:The encrypted number is 4601編程思路。直接按加密方法進(jìn)行順序處理即可。#include int main()int x,a,b,c,d,v;scanf(%d,&x); a=(x/1000)+9)%10; b=(x%1000

9、/100)+9)%10; c=(x%100/10)+9)%10; d=(x%10)+9)%10;v=1000*c+100*d+10*a+b;printf(The encrypted number is %04dn,v); return 0;找不同單獨(dú)寫一個數(shù)字,然后依次上交,誰的數(shù)據(jù)沒有和其他人重復(fù),誰就贏了輸入格式:輸入是一個測試用例,首先給出網(wǎng)友個數(shù) N,之后依次給出 N 個正整數(shù),給出的正整數(shù)和 N10 5 輸出格式:對每一組輸入,輸出與眾不同的那個數(shù),如果沒有,輸出None。輸入樣例 1:在這里給出一組輸入。例如:8 1 2 3 4 4 5 3 1輸出樣例 1:在這里給出相應(yīng)的輸出。例

10、如:2輸入樣例 2:在這里給出一組輸入。例如:8 1 2 3 4 4 3 2 1輸出樣例 2:在這里給出相應(yīng)的輸出。例如:None編程思路。定義數(shù)組 int num100000;保存輸入的N 個正整數(shù)。對數(shù)組num 中的每個元素numi 看在數(shù)組中是否存在與它相同的數(shù)。算法描述為:for (i=0;in;i+)/ 遍歷數(shù)組中的每個元素numifor (j=0;jn;j+)/ aiN-1 元素比較if (j=i) continue;if (numi=numj) break;/ 不唯一,退出循環(huán)if (j=n) break;/ 與其他元素均不同,是唯一的,退出循環(huán)#include int num1

11、00000; int main()int n; int i,j;for (i=0;in;i+) scanf(%d,&numi);for (i=0;in;i+)for (j=0;jn;j+)if (j=i) continue;if (numi=numj) break;if (j=n) break;if (in) printf(%dn,numi); elseprintf(Nonen);return 0;判斷上三角矩陣上三角矩陣指主對角線以下的元素都為0 線。本題要求編寫程序,判斷一個給定的方陣是否上三角矩陣。輸入格式:輸入第一行給出一個正整數(shù)T 10 nn n 分隔。輸出格式:231 2 30 4

12、 50 0 621 0-8 2輸出樣例:YES NO編程思路。用二重循環(huán) for (i=1; in;i+)for (j=0;ji;j+)對方陣的主對角線以下的各元素進(jìn)行處理,若 aij不等于 0三角矩陣,置標(biāo)記flag=(設(shè)flag的初始值為1,并退出循環(huán)。flag=1No。#include int main()int t; scanf(%d,&t); while (t-)int a1010; int n,i,j;scanf(%d,&n); for (i=0;in;i+)for (j=0;jn;j+) scanf(%d,&aij);int flag=1;for (i=1;flag & in;i

13、+) for (j=0;ji;j+)if (aij!=0)flag=0; break;if (flag=1) printf(YESn); else printf(NOn);return 0;求矩陣各行元素之和本題要求編寫程序,求一個給定的mn 輸入格式:輸入第一行給出兩個正整數(shù)m 和(6。隨后m 行,每行給出n 空格分隔。輸出格式:輸入樣例:3 26 31 -83 12輸出樣例:9-715編程思路。用如下的二重循環(huán)對mn 矩陣進(jìn)行處理。for (i=0;im;i+)int sum=0;for (j=0;jn;j+) sum+=aij;printf(%dn,sum);#include int m

14、ain()int a66;int m,n,i,j; scanf(%d%d,&m,&n); for (i=0;im;i+)for (j=0;jn;j+) scanf(%d,&aij);for (i=0;im;i+)int sum=0;for (j=0;jn;j+) sum+=aij;printf(%dn,sum);return 0;方陣循環(huán)右移nn 方陣中的每個元素循環(huán)向右移m 01n1 列變換為第、nm+1、n1、0、nm1 列。輸入格式:輸入第一行給出兩個正整數(shù)m 和16n 行,每行n n 階的方陣。輸出格式:按照輸入格式輸出移動后的方陣:即輸出n 行,每行n 輸入樣例:2 31 2 34

15、5 67 8 9輸出樣例:2 3 15 6 48 9 7編程思路。將方陣中每行的 n 個元素循環(huán)向右移 m 個位置,可以寫成三個一重循環(huán), 以第 i 行為例進(jìn)行描述,第 i 行的元素為 ai0ain-1。m t 中,循環(huán)為for (k=0, j=n-m;j=0;j-)aij+m=aij;m 個元素順序放在第行的左端,循環(huán)為for (j=0;jm;j+) aij=tj;源程序。#include int main()int a66,t6; int m,n,i,j;scanf(%d%d,&m,&n); for (i=0;in;i+)for (j=0;jn;j+) scanf(%d,&aij);m=m

16、%n;for (i=0;in;i+)int k=0;for (j=n-m;j=0;j-)aij+m=aij; for (j=0;jm;j+)aij=tj; for (j=0;jmaxmax=aijaijmin, min=aij。源程序。#include int main()int a33; int i,j;for (i=0;i3;i+) for int max=a00;int min=a00; for for (j=0;j3;j+)if (maxaij) min=aij;printf(max=%d min=%dn,max,min); return 0;統(tǒng)計(jì)大寫輔音字母英文輔音字母是除AEOU

17、寫輔音字母的個數(shù)。輸入格式:80 輸出格式:輸入樣例:HELLO World!輸出樣例:4編程思路。同樣用循環(huán) for (int i=0;si!=0;i+)對輸入字符串中的各字符 si進(jìn)行判斷,若 si為答謝字母(si=A & si=Z)且不為 A、E、I、O、U 這 5 個字母,則計(jì)數(shù)。源程序。#include #include int main()char s81; gets(s);int cnt=0;for (int i=0;si!=0;i+)if (si=B & si=Z)if (si!=E & si!=I & si!=O & si!=U) cnt+;printf(%dn,cnt);

18、return 0;字符串字母大小寫轉(zhuǎn)換本題要求編寫程序,對一個以“#”結(jié)束的字符串,將其小寫字母全部轉(zhuǎn)換成大寫字母,把大寫字母全部轉(zhuǎn)換成小寫字母,其他字符不變輸出。輸入格式:(30 個字符。輸出格式:輸入樣例:Hello World! 123#輸出樣例:hELLO wORLD! 123編程思路。32 32 母。源程序。#include #include int main()char s30,ch; int cnt=0;while (ch=getchar()!=#)if (ch=A & ch=a & ch=0;i+) S=S*2+ai;源程序。#include int main()char s1

19、7; scanf(%s,s); int num=0;for (int i=0;si!=0;i+) num=num*2+si-0;printf(%dn,num); return 0;字符串排序本題要求編寫程序,讀入 5 個字符串,按由小到大的順序輸出。輸入格式:輸入為由空格分隔的 5 80。輸出格式:按照以下格式輸出排序后的結(jié)果:After sorted:輸入樣例:red yellow blue green white輸出樣例: After sorted: bluegreen redwhite yellow編程思路。strcpy 即可。源程序。#include #include int main

20、()char s580,t80; int i,j;for (i=0;i5;i+) scanf(%s,si);for (i=0;i5-1;i+)for (j=0;j0)strcpy(t,sj);strcpy(sj,sj+1);strcpy(sj+1,t);printf(After sorted:n); for (i=0;i5;i+)printf(%sn,si); return 0;找最長的字符串本題要求編寫程序,針對輸入的N 個字符串,輸出其中最長的字符串。輸入格式:輸入第一行給出正整數(shù)N;隨后N 行,每行給出一個長度小于80 的非空字符串,其中不會出現(xiàn)換行符,空格,制表符。輸出格式:在一行中用

21、以下格式輸出最長的字符串:The longest is: 最長的字符串如果字符串的長度相同,則輸出先輸入的字符串。輸入樣例:5li wang zhang jin xiang輸出樣例:The longest is: zhang編程思路。定義兩個字符串?dāng)?shù)組 str81和 maxStr81,一個用于輸入字符串,一個保存最長的字符串。定義整型變量 maxlen 保存最長字符串的長度。1 個字符串為最長字符串。依次輸入剩下的n-1 個字符串(i=1;in;i+) str,若其長度大于 maxlen,則修改 maxlen=strlen(str),并保存最長字符串 strcpy(maxStr,str)。源程

22、序。#include #include int main()int n; scanf(%d,&n);char str81,maxStr81; int maxlen,i; scanf(%s,str); maxlen=strlen(str); strcpy(maxStr,str);for (i=1;imaxlen)strcpy(maxStr,str);printf(The longest is: %s,maxStr); return 0;統(tǒng)計(jì)字符出現(xiàn)次數(shù)輸入格式:輸入第一行給出一個以回車結(jié)束的字符串(少于80個字符輸出格式:輸入樣例:programming is More fun! m輸出樣例:2編程思路。用循環(huán) for (int i=0;si!=0;i+)對輸入字符串中的各字符 si進(jìn)行判斷,若 si=ch,則計(jì)數(shù)。處理過程如下:int cnt=0;for (int i=0;si!=0;i+) if (si=ch)cnt+;源程序。#include #include int main()char s80,ch;gets(s); ch=getchar(); int cnt=0;for (int i=0;si!=0;i+) if (si=ch)cnt+; printf(

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論