




已閱讀5頁(yè),還剩61頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1001. 害死人不償命的(3n+1)猜想 (15)21002. 寫(xiě)出這個(gè)數(shù) (20)21003. 我要通過(guò)!(20)31004. 成績(jī)排名 (20)51005. 繼續(xù)(3n+1)猜想 (25)61006. 換個(gè)格式輸出整數(shù) (15)71007. 素?cái)?shù)對(duì)猜想 (20)81008. 數(shù)組元素循環(huán)右移問(wèn)題 (20)91009. 說(shuō)反話 (20)91010. 一元多項(xiàng)式求導(dǎo) (25)101011. A+B和C (15)111012. 數(shù)字分類(lèi) (20)121013. 數(shù)素?cái)?shù) (20)131014. 福爾摩斯的約會(huì) (20)141015. 德才論 (25)161016. 部分A+B (15)181017. A除以B (20)191018. 錘子剪刀布 (20)201019. 數(shù)字黑洞 (20)221020. 月餅 (25)231021. 個(gè)位數(shù)統(tǒng)計(jì) (15)241022. D進(jìn)制的A+B (20)251023. 組個(gè)最小數(shù) (20)251024. 科學(xué)計(jì)數(shù)法 (20)261025. 反轉(zhuǎn)鏈表 (25)281026. 程序運(yùn)行時(shí)間(15)301027. 打印沙漏(20)301028. 人口普查(20)311029. 舊鍵盤(pán)(20)331030. 完美數(shù)列(25)341031. 查驗(yàn)身份證(15)351032. 挖掘機(jī)技術(shù)哪家強(qiáng)(20)361033. 舊鍵盤(pán)打字(20)371034. 有理數(shù)四則運(yùn)算(20)381035. 插入與歸并(25)411036. 跟奧巴馬一起編程(15)431037. 在霍格沃茨找零錢(qián)(20)441038. 統(tǒng)計(jì)同成績(jī)學(xué)生(20)451039. 到底買(mǎi)不買(mǎi)(20)451040. 有幾個(gè)PAT(25)471041. 考試座位號(hào)(15)481042. 字符統(tǒng)計(jì)(20)491043. 輸出PATest(20)501044. 火星數(shù)字(20)511045. 快速排序(25)521046. 劃拳(15)531047. 編程團(tuán)體賽(20)541048. 數(shù)字加密(20)551049. 數(shù)列的片段和(20)561050. 螺旋矩陣(25)571051. 復(fù)數(shù)乘法 (15)591052. 賣(mài)個(gè)萌 (20)591053. 住房空置率 (20)611054. 求平均值 (20)621055. 集體照 (25)651001. 害死人不償命的(3n+1)猜想 (15)對(duì)任何一個(gè)自然數(shù)n,如果它是偶數(shù),那么把它砍掉一半;如果它是奇數(shù),那么把(3n+1)砍掉一半。這樣一直反復(fù)砍下去,最后一定在某一步得到n=1??ɡ澰?950年的世界數(shù)學(xué)家大會(huì)上公布了這個(gè)猜想,傳說(shuō)當(dāng)時(shí)耶魯大學(xué)師生齊動(dòng)員,拼命想證明這個(gè)貌似很傻很天真的命題,結(jié)果鬧得學(xué)生們無(wú)心學(xué)業(yè),一心只證(3n+1),以至于有人說(shuō)這是一個(gè)陰謀,卡拉茲是在蓄意延緩美國(guó)數(shù)學(xué)界教學(xué)與科研的進(jìn)展我們今天的題目不是證明卡拉茲猜想,而是對(duì)給定的任一不超過(guò)1000的正整數(shù)n,簡(jiǎn)單地?cái)?shù)一下,需要多少步(砍幾下)才能得到n=1?輸入格式:每個(gè)測(cè)試輸入包含1個(gè)測(cè)試用例,即給出自然數(shù)n的值。輸出格式:輸出從n計(jì)算到1需要的步數(shù)。輸入樣例:3輸出樣例:5#include int countCallatz(unsigned int n)if (n = 1 | n = 0)return 0;if (n % 2 = 0)return countCallatz(n/2)+1;else return countCallatz(3*n+1)/2)+1; int main(void)unsigned int n;scanf(%d, &n);printf(%d, countCallatz(n);return 0; 1002. 寫(xiě)出這個(gè)數(shù) (20)讀入一個(gè)自然數(shù)n,計(jì)算其各位數(shù)字之和,用漢語(yǔ)拼音寫(xiě)出和的每一位數(shù)字。輸入格式:每個(gè)測(cè)試輸入包含1個(gè)測(cè)試用例,即給出自然數(shù)n的值。這里保證n小于10100。輸出格式:在一行內(nèi)輸出n的各位數(shù)字之和的每一位,拼音數(shù)字間有1 空格,但一行中最后一個(gè)拼音數(shù)字后沒(méi)有空格。輸入樣例:1234567890987654321123456789輸出樣例:yi san wu#include void shuchu(int x); int main() char n; int a,b,s=0; scanf(%c,&n); while(n!=n) s+=n-0; scanf(%c,&n); shuchu(s); return 0; void shuchu(int x) if(x9 ) t /= 10; mask *=10; do int d = x / mask; switch(d) case 0: printf(ling);break; case 1: printf(yi);break; case 2: printf(er);break; case 3: printf(san);break; case 4: printf(si);break; case 5: printf(wu);break; case 6: printf(liu);break; case 7: printf(qi);break; case 8: printf(ba);break; case 9: printf(jiu);break; if(mask9)printf( ); x %= mask; mask /= 10; while ( mask 0 ); return; 1003. 我要通過(guò)!(20)“答案正確”是自動(dòng)判題系統(tǒng)給出的最令人歡喜的回復(fù)。本題屬于PAT的“答案正確”大派送 只要讀入的字符串滿足下列條件,系統(tǒng)就輸出“答案正確”,否則輸出“答案錯(cuò)誤”。得到“答案正確”的條件是:1. 字符串中必須僅有P, A, T這三種字符,不可以包含其它字符;2. 任意形如 xPATx 的字符串都可以獲得“答案正確”,其中 x 或者是空字符串,或者是僅由字母 A 組成的字符串;3. 如果 aPbTc 是正確的,那么 aPbATca 也是正確的,其中 a, b, c 均或者是空字符串,或者是僅由字母 A 組成的字符串?,F(xiàn)在就請(qǐng)你為PAT寫(xiě)一個(gè)自動(dòng)裁判程序,判定哪些字符串是可以獲得“答案正確”的。輸入格式: 每個(gè)測(cè)試輸入包含1個(gè)測(cè)試用例。第1行給出一個(gè)自然數(shù)n (10),是需要檢測(cè)的字符串個(gè)數(shù)。接下來(lái)每個(gè)字符串占一行,字符串長(zhǎng)度不超過(guò)100,且不包含空格。輸出格式:每個(gè)字符串的檢測(cè)結(jié)果占一行,如果該字符串可以獲得“答案正確”,則輸出YES,否則輸出NO。輸入樣例:8PATPAATAAPATAAAAPAATAAAAxPATxPTWhateverAPAAATAA輸出樣例:YESYESYESYESNONONONO#include #includeint main() int n,i,j; int cntp=0,cntt=0;char s101; char *p1,*p2; scanf(%d,&n); for(i=0;in;+i) scanf(%s,&s);int cntp=0,cntt=0,cnta=0,ispat=0; /* 對(duì)s進(jìn)行遍歷,記錄PAT三個(gè)字母出現(xiàn)的次數(shù),若出現(xiàn)其他字符直接結(jié)束測(cè)試 */for(j=0;sj!=0;+j)if(sj=P) +cntp;else if(sj=T) +cntt;else if(sj=A) +cnta; else goto endtest; /* 當(dāng)P和T都只有1個(gè),A至少1個(gè)時(shí),計(jì)算是否符合規(guī)律 */ if(cntp=1&cntt=1&cnta!=0)p1=strchr(s,P); p2=strchr(s,T); if(p1-s)*(p2-p1-1)=strlen(p2)-1)ispat=1; endtest: if(ispat) printf(YESn);else printf(NOn); return 0; 1004. 成績(jī)排名 (20)讀入n名學(xué)生的姓名、學(xué)號(hào)、成績(jī),分別輸出成績(jī)最高和成績(jī)最低學(xué)生的姓名和學(xué)號(hào)。輸入格式:每個(gè)測(cè)試輸入包含1個(gè)測(cè)試用例,格式為 第1行:正整數(shù)n 第2行:第1個(gè)學(xué)生的姓名 學(xué)號(hào) 成績(jī) 第3行:第2個(gè)學(xué)生的姓名 學(xué)號(hào) 成績(jī) . . . 第n+1行:第n個(gè)學(xué)生的姓名 學(xué)號(hào) 成績(jī)其中姓名和學(xué)號(hào)均為不超過(guò)10個(gè)字符的字符串,成績(jī)?yōu)?到100之間的一個(gè)整數(shù),這里保證在一組測(cè)試用例中沒(méi)有兩個(gè)學(xué)生的成績(jī)是相同的。輸出格式:對(duì)每個(gè)測(cè)試用例輸出2行,第1行是成績(jī)最高學(xué)生的姓名和學(xué)號(hào),第2行是成績(jī)最低學(xué)生的姓名和學(xué)號(hào),字符串間有1空格。輸入樣例:3Joe Math990112 89Mike CS991301 100Mary EE990830 95輸出樣例:Mike CS991301Joe Math990112#include #include int main(void) struct studentchar name11;char number11;int val;struct student *ps;int i, N;int Max = -1, Min = 101;int cMax, cMin;scanf(%d, &N);if(N 0)goto err_exit;ps = (struct student *)malloc(N * sizeof(struct student);if(ps = NULL)goto err_exit;for(i = 0; i N; i+)scanf(%s %s %d, , psi.number, &(psi.val); for(i = 0; i N; i+)if(psi.val Max)cMax = i;Max = psi.val;printf(%s %sn, pscM, pscMax.number);printf(%s %sn, pscM, pscMin.number);free(ps);err_exit:return 0;1005. 繼續(xù)(3n+1)猜想 (25)卡拉茲(Callatz)猜想已經(jīng)在1001中給出了描述。在這個(gè)題目里,情況稍微有些復(fù)雜。當(dāng)我們驗(yàn)證卡拉茲猜想的時(shí)候,為了避免重復(fù)計(jì)算,可以記錄下遞推過(guò)程中遇到的每一個(gè)數(shù)。例如對(duì)n=3進(jìn)行驗(yàn)證的時(shí)候,我們需要計(jì)算3、5、8、4、2、1,則當(dāng)我們對(duì)n=5、8、4、2進(jìn)行驗(yàn)證的時(shí)候,就可以直接判定卡拉茲猜想的真?zhèn)?,而不需要重?fù)計(jì)算,因?yàn)檫@4個(gè)數(shù)已經(jīng)在驗(yàn)證3的時(shí)候遇到過(guò)了,我們稱5、8、4、2是被3“覆蓋”的數(shù)。我們稱一個(gè)數(shù)列中的某個(gè)數(shù)n為“關(guān)鍵數(shù)”,如果n不能被數(shù)列中的其他數(shù)字所覆蓋?,F(xiàn)在給定一系列待驗(yàn)證的數(shù)字,我們只需要驗(yàn)證其中的幾個(gè)關(guān)鍵數(shù),就可以不必再重復(fù)驗(yàn)證余下的數(shù)字。你的任務(wù)就是找出這些關(guān)鍵數(shù)字,并按從大到小的順序輸出它們。輸入格式:每個(gè)測(cè)試輸入包含1個(gè)測(cè)試用例,第1行給出一個(gè)正整數(shù)K(100),第2行給出K個(gè)互不相同的待驗(yàn)證的正整數(shù)n(1n=100)的值,數(shù)字間用空格隔開(kāi)。輸出格式:每個(gè)測(cè)試用例的輸出占一行,按從大到小的順序輸出關(guān)鍵數(shù)字。數(shù)字間用1個(gè)空格隔開(kāi),但一行中最后一個(gè)數(shù)字后沒(méi)有空格。輸入樣例:63 5 6 7 8 11輸出樣例:7 6#include #include int main(void) int i, j, num, x; int cnt101; int bucket101; int flag = 0; scanf(%d, &num); for(i = 0; i num; i+) scanf(%d, &cnti); memset(bucket, 0x00, sizeof(bucket); for(i = 0; i num; i+) x = cnti; if(bucketx = 1) continue ; while(x != 1 & x != 0) if(x % 2 = 0) x = x / 2; else x = (3 * x + 1) / 2; if(x = 100) bucketx = 1; for(j = 0; j = 0; i-) if(bucketi != 1) for(j = 0; j 1 ? %d : %d, i); flag -= 1; return 0; 1006. 換個(gè)格式輸出整數(shù) (15)讓我們用字母B來(lái)表示“百”、字母S表示“十”,用“12.n”來(lái)表示個(gè)位數(shù)字n(10),換個(gè)格式來(lái)輸出任一個(gè)不超過(guò)3位的正整數(shù)。例如234應(yīng)該被輸出為BBSSS1234,因?yàn)樗?個(gè)“百”、3個(gè)“十”、以及個(gè)位的4。輸入格式:每個(gè)測(cè)試輸入包含1個(gè)測(cè)試用例,給出正整數(shù)n(1000)。輸出格式:每個(gè)測(cè)試用例的輸出占一行,用規(guī)定的格式輸出n。輸入樣例1:234輸出樣例1:BBSSS1234輸入樣例2:23輸出樣例2:SS123#includeint main()int i,n,d3;scanf(%d,&n);d2=n/100;d1=(n-d2*100)/10;d0=n-d2*100-d1*10;for(i=0;id2;i+)printf(B);for(i=0;id1;i+)printf(S);for(i=1;i1有 dn 是偶數(shù)?!八?cái)?shù)對(duì)猜想”認(rèn)為“存在無(wú)窮多對(duì)相鄰且差為2的素?cái)?shù)”。現(xiàn)給定任意正整數(shù)N ( 105),請(qǐng)計(jì)算不超過(guò)N的滿足猜想的素?cái)?shù)對(duì)的個(gè)數(shù)。輸入格式:每個(gè)測(cè)試輸入包含1個(gè)測(cè)試用例,給出正整數(shù)N。輸出格式:每個(gè)測(cè)試用例的輸出占一行,不超過(guò)N的滿足猜想的素?cái)?shù)對(duì)的個(gè)數(shù)。輸入樣例:20輸出樣例:4#include#includeint issus(int x)int j,t;t=(int)sqrt(double)x);for(j=2;jt)return 1;int main()int i,k=0,n;scanf(%d,&n);for(i=3;i0)個(gè)整數(shù),在不允許使用另外數(shù)組的前提下,將每個(gè)整數(shù)循環(huán)向右移M(M=0)個(gè)位置,即將A中的數(shù)據(jù)由(A0 A1AN-1)變換為(AN-M AN-1 A0 A1AN-M-1)(最后M個(gè)數(shù)循環(huán)移至最前面的M個(gè)位置)。如果需要考慮程序移動(dòng)數(shù)據(jù)的次數(shù)盡量少,要如何設(shè)計(jì)移動(dòng)的方法?輸入格式:每個(gè)輸入包含一個(gè)測(cè)試用例,第1行輸入N ( 1=N=0);第2行輸入N個(gè)整數(shù),之間用空格分隔。輸出格式:在一行中輸出循環(huán)右移M位以后的整數(shù)序列,之間用空格分隔,序列結(jié)尾不能有多余空格。輸入樣例:6 21 2 3 4 5 6輸出樣例:5 6 1 2 3 4#includeint main()int m,n,i,j,t;scanf(%d %d,&n,&m);int an;for(i=0;in;i+)scanf(%d,&ai);for(i=0;i=0;j-)aj+1=aj;a0=t;for(i=0;in;i+)printf(%d,ai);if(i!=n-1)printf( );return 0;1009. 說(shuō)反話 (20)給定一句英語(yǔ),要求你編寫(xiě)程序,將句中所有單詞的順序顛倒輸出。輸入格式:測(cè)試輸入包含一個(gè)測(cè)試用例,在一行內(nèi)給出總長(zhǎng)度不超過(guò)80的字符串。字符串由若干單詞和若干空格組成,其中單詞是由英文字母(大小寫(xiě)有區(qū)分)組成的字符串,單詞之間用1個(gè)空格分開(kāi),輸入保證句子末尾沒(méi)有多余的空格。輸出格式:每個(gè)測(cè)試用例的輸出占一行,輸出倒序后的句子。輸入樣例:Hello World Here I Come輸出樣例:Come I Here World Hello#include#includeint main()int ch,i=0,k=-1;char *p,a81;p=a;while(ch=getchar()!=n)if(i80)ai+=ch;ai=0;k=strcspn(a, );if(ki)p=strrchr(a, );while(p!=(a+k)p=strrchr(a, );printf(%s ,p+1); *(p)=0;printf(%sn,a);return 0;1010. 一元多項(xiàng)式求導(dǎo) (25)設(shè)計(jì)函數(shù)求一元多項(xiàng)式的導(dǎo)數(shù)。(注:xn(n為整數(shù))的一階導(dǎo)數(shù)為n*xn-1。)輸入格式:以指數(shù)遞降方式輸入多項(xiàng)式非零項(xiàng)系數(shù)和指數(shù)(絕對(duì)值均為不超過(guò)1000的整數(shù))。數(shù)字間以空格分隔。輸出格式:以與輸入相同的格式輸出導(dǎo)數(shù)多項(xiàng)式非零項(xiàng)的系數(shù)和指數(shù)。數(shù)字間以空格分隔,但結(jié)尾不能有多余空格。注意“零多項(xiàng)式”的指數(shù)和系數(shù)都是0,但是表示為“0 0”。輸入樣例:3 4 -5 2 6 1 -2 0輸出樣例:12 3 -10 1 6 0#include#includeint main() int i=0,n=4; int *a=NULL; char ch; a=(int *)malloc(2*sizeof(int); while(in-2) scanf(%d%c,&ai+,&ch); if(i=n-2) n=n+10; a=(int *)realloc(a,n*sizeof(int); if(ch=n) break; ai=0; ai+1=0; n=i; if(a0*a1=0 | a1=0) printf(0 0); return 0; for(i=0;i1000 | ai1000) continue; if(ai+30) printf(%d %d ,ai*ai+1,ai+1-1); else printf(%d %dn,ai*ai+1,ai+1-1); break; free(a); return 0;1011. A+B和C (15)給定區(qū)間-231, 231內(nèi)的3個(gè)整數(shù)A、B和C,請(qǐng)判斷A+B是否大于C。輸入格式:輸入第1行給出正整數(shù)T(C,否則輸出“Case #X: false”,其中X是測(cè)試用例的編號(hào)(從1開(kāi)始)。輸入樣例:41 2 32 3 42147483647 0 21474836460 -2147483648 -2147483647輸出樣例:Case #1: falseCase #2: trueCase #3: trueCase #4: false#includeint main()int i,n;scanf(%d,&n);long int a,b,c;char strn15;for(i=0;ic)sprintf(stri,Case #%d: true,i+1);elsesprintf(stri,Case #%d: false,i+1);for(i=0;in;i+)printf(%sn,stri);return 0;1012. 數(shù)字分類(lèi) (20)給定一系列正整數(shù),請(qǐng)按要求對(duì)數(shù)字進(jìn)行分類(lèi),并輸出以下5個(gè)數(shù)字:A1 = 能被5整除的數(shù)字中所有偶數(shù)的和;A2 = 將被5除后余1的數(shù)字按給出順序進(jìn)行交錯(cuò)求和,即計(jì)算n1-n2+n3-n4.;A3 = 被5除后余2的數(shù)字的個(gè)數(shù);A4 = 被5除后余3的數(shù)字的平均數(shù),精確到小數(shù)點(diǎn)后1位;A5 = 被5除后余4的數(shù)字中最大數(shù)字。輸入格式:每個(gè)輸入包含1個(gè)測(cè)試用例。每個(gè)測(cè)試用例先給出一個(gè)不超過(guò)1000的正整數(shù)N,隨后給出N個(gè)不超過(guò)1000的待分類(lèi)的正整數(shù)。數(shù)字間以空格分隔。輸出格式:對(duì)給定的N個(gè)正整數(shù),按題目要求計(jì)算A1A5并在一行中順序輸出。數(shù)字間以空格分隔,但行末不得有多余空格。若其中某一類(lèi)數(shù)字不存在,則在相應(yīng)位置輸出“N”。輸入樣例1:13 1 2 3 4 5 6 7 8 9 10 20 16 18輸出樣例1:30 11 2 9.7 9輸入樣例2:8 1 2 4 5 6 7 9 16輸出樣例2:N 11 2 N 9#includeint main()int i,k=1,n,A5=0,flag5=0;int k2=0;scanf(%d,&n);int an;for(i=0;in;i+)scanf(%d,&ai);for(i=0;iA4) A4=ai;for(i=0;i3;i+)if(flagi=0)printf(N );elseprintf(%d ,Ai);if(A3=0)printf(N );elseprintf(%.1f ,(double)A3/k2);if(A4=0)printf(Nn);elseprintf(%dn,A4);return 0;1013. 數(shù)素?cái)?shù) (20)令Pi表示第i個(gè)素?cái)?shù)?,F(xiàn)任給兩個(gè)正整數(shù)M = N = 104,請(qǐng)輸出PM到PN的所有素?cái)?shù)。輸入格式:輸入在一行中給出M和N,其間以空格分隔。輸出格式:輸出從PM到PN的所有素?cái)?shù),每10個(gè)數(shù)字占1行,其間以空格分隔,但行末不得有多余空格。輸入樣例:5 27輸出樣例:11 13 17 19 23 29 31 37 41 4347 53 59 61 67 71 73 79 83 8997 101 103#include#includeint issus(int x)int j,t;t=(int)sqrt(double)x);for(j=2;jt)return 1;int main()int a1,a2;int i,j,t=0;scanf(%d %d,&a1,&a2);i=-a1;a2=a2-a1;for(j=2;i=0)printf(%d,j);t+;if(t%10)!=0 & i!=a2)printf( );elseprintf(n);return 0;1014. 福爾摩斯的約會(huì) (20)大偵探福爾摩斯接到一張奇怪的字條:“我們約會(huì)吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”。大偵探很快就明白了,字條上奇怪的亂碼實(shí)際上就是約會(huì)的時(shí)間“星期四 14:04”,因?yàn)榍懊鎯勺址械?對(duì)相同的大寫(xiě)英文字母(大小寫(xiě)有區(qū)分)是第4個(gè)字母D,代表星期四;第2對(duì)相同的字符是E,那是第5個(gè)英文字母,代表一天里的第14個(gè)鐘頭(于是一天的0點(diǎn)到23點(diǎn)由數(shù)字0到9、以及大寫(xiě)字母A到N表示);后面兩字符串第1對(duì)相同的英文字母s出現(xiàn)在第4個(gè)位置(從0開(kāi)始計(jì)數(shù))上,代表第4分鐘?,F(xiàn)給定兩對(duì)字符串,請(qǐng)幫助福爾摩斯解碼得到約會(huì)的時(shí)間。輸入格式:輸入在4行中分別給出4個(gè)非空、不包含空格、且長(zhǎng)度不超過(guò)60的字符串。輸出格式:在一行中輸出約會(huì)的時(shí)間,格式為“DAY HH:MM”,其中“DAY”是某星期的3字符縮寫(xiě),即MON表示星期一,TUE表示星期二,WED表示星期三,THU表示星期四,F(xiàn)RI表示星期五,SAT表示星期六,SUN表示星期日。題目輸入保證每個(gè)測(cè)試存在唯一解。輸入樣例:3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm輸出樣例:THU 14:04#includevoid swt(char ch)switch(ch) case A:printf(MON );break; case B:printf(TUE );break; case C:printf(WED );break; case D:printf(THU );break; case E:printf(FRI );break; case F:printf(SAT );break; case G:printf(SUN );break; default:break;int main()char str461=0;char ch;int i,j=0;for(j=0;j4;j+)i=0;while(ch=getchar()!=n)if(i=A & str0i=A & str0i=0 & str0i=A & str3i=z)printf(%02dn,i);break;return 0;1015. 德才論 (25)宋代史學(xué)家司馬光在資治通鑒中有一段著名的“德才論”:“是故才德全盡謂之圣人,才德兼亡謂之愚人,德勝才謂之君子,才勝德謂之小人。凡取人之術(shù),茍不得圣人,君子而與之,與其得小人,不若得愚人?!爆F(xiàn)給出一批考生的德才分?jǐn)?shù),請(qǐng)根據(jù)司馬光的理論給出錄取排名。輸入格式:輸入第1行給出3個(gè)正整數(shù),分別為:N(=60),為錄取最低分?jǐn)?shù)線,即德分和才分均不低于L的考生才有資格被考慮錄??;H(100),為優(yōu)先錄取線德分和才分均不低于此線的被定義為“才德全盡”,此類(lèi)考生按德才總分從高到低排序;才分不到但德分到線的一類(lèi)考生屬于“德勝才”,也按總分排序,但排在第一類(lèi)考生之后;德才分均低于H,但是德分不低于才分的考生屬于“才德兼亡”但尚有“德勝才”者,按總分排序,但排在第二類(lèi)考生之后;其他達(dá)到最低線L的考生也按總分排序,但排在第三類(lèi)考生之后。隨后N行,每行給出一位考生的信息,包括:準(zhǔn)考證號(hào)、德分、才分,其中準(zhǔn)考證號(hào)為8位整數(shù),德才分為區(qū)間0, 100內(nèi)的整數(shù)。數(shù)字間以空格分隔。輸出格式:輸出第1行首先給出達(dá)到最低分?jǐn)?shù)線的考生人數(shù)M,隨后M行,每行按照輸入格式輸出一位考生的信息,考生按輸入中說(shuō)明的規(guī)則從高到低排序。當(dāng)某類(lèi)考生中有多人總分相同時(shí),按其德分降序排列;若德分也并列,則按準(zhǔn)考證號(hào)的升序輸出。輸入樣例:14 60 8010000001 64 9010000002 90 6010000011 85 8010000003 85 8010000004 80 8510000005 82 7710000006 83 7610000007 90 7810000008 75 7910000009 59 9010000010 88 4510000012 80 10010000013 90 9910000014 66 60輸出樣例:1210000013 90 9910000012 80 10010000003 85 8010000011 85 8010000004 80 8510000007 90 7810000006 83 7610000005 82 7710000002 90 6010000014 66 6010000008 75 7910000001 64 90#include#includeint l,m;#define SAME 0#define A 1#define B -1#define H -1#define L 1typedef struct examinee int id; int de; int cai; int total; EXAM;int section(EXAM *a,EXAM *b) if(a-de=m&a-cai=m) if(b-de=m&b-cai=m) return SAME; else return A; else if(a-de=m&a-caide=m&b-cai=m) return B; else if (b-de=m&b-caide=a-cai&a-decaide=m) return B; else if (b-de=b-cai&b-decaidecai&b-detotalb-total) return H; else if(a-total=b-total) if(a-deb-de) return H; else if(a-de=b-de) if(a-idb-id) return L; else return H; else return L; else return L;case A: return H;case B: return L; int main() int i,n; EXAM *list; scanf(%d%d%d,&n,&l,&m); list=(EXAM *)malloc(sizeof(EXAM)*n); for(i=0;in;i+) scanf(%d%d%d,&listi.id,&listi.de,&listi.cai); listi.total=listi.de+listi.cai; if(listi.del|listi.cail) i-; n-; qsort(list,n,sizeof(EXAM),compare); printf(%dn,n); for(i=0;in;i+) printf(%d %d %dn,listi.id,listi.de,listi.cai); free(list);1016. 部分A+B (15)正整數(shù)A的“DA(為1位整數(shù))部分”定義為由A中所有DA組成的新整數(shù)PA。例如:給定A = 3862767,DA = 6,則A的“6部分”P(pán)A是66,因?yàn)锳中有2個(gè)6?,F(xiàn)給定A、DA、B、DB,請(qǐng)編寫(xiě)程序計(jì)算PA + PB。輸入格式:輸入在一行中依次給出A、DA、B、DB,中間以空格分隔,其中0 A, B 1010。輸出格式:在一行中輸出PA + PB的值。輸入樣例1:3862767 6 13530293 3輸出樣例1:399輸入樣例2:3862767 1 13530293 8輸出樣例2:0#
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 藝術(shù)品市場(chǎng)行業(yè)規(guī)范建設(shè)考核試卷
- 鐵路職工職業(yè)素養(yǎng)與維護(hù)意識(shí)培養(yǎng)考核試卷
- 突發(fā)心肌梗塞急救方法
- 器官移植麻醉核心要點(diǎn)
- 外科疼痛規(guī)范化管理與患者教育
- 外科切口護(hù)理
- 低體溫新生兒護(hù)理
- 2025年天然氣管道建設(shè)社會(huì)穩(wěn)定風(fēng)險(xiǎn)評(píng)估與風(fēng)險(xiǎn)評(píng)估實(shí)踐總結(jié)與展望報(bào)告
- 2025年即時(shí)配送行業(yè)配送路徑優(yōu)化與成本控制創(chuàng)新方案報(bào)告
- 2025年教育精準(zhǔn)扶貧中的師資隊(duì)伍建設(shè)與提升路徑報(bào)告
- 露天煤礦安全用電知識(shí)課件
- 食品安全自查、從業(yè)人員健康管理、進(jìn)貨查驗(yàn)記錄、食品安全事故處置等保證食品安全的規(guī)章制度
- 美國(guó)特殊教育介紹
- 預(yù)防保健科室
- 第六單元《多邊形的面積》教材解讀課件新課標(biāo)人教數(shù)學(xué)五年級(jí)上冊(cè)
- 中國(guó)糖尿病防治指南(2024版)解讀課件
- 綜合布線系統(tǒng)結(jié)構(gòu)圖課件
- 2025年別墅新風(fēng)系統(tǒng)安裝合同范本
- 智慧礦山無(wú)人機(jī)自動(dòng)巡檢解決方案
- 新產(chǎn)品開(kāi)發(fā)周期與研發(fā)進(jìn)度規(guī)劃計(jì)劃
- 2025年1月福建省普通高中學(xué)業(yè)水平合格性考試語(yǔ)文仿真模擬卷02(春季高考適用)(參考答案)
評(píng)論
0/150
提交評(píng)論