附 第二次模擬總結(jié)_第1頁
附 第二次模擬總結(jié)_第2頁
附 第二次模擬總結(jié)_第3頁
附 第二次模擬總結(jié)_第4頁
附 第二次模擬總結(jié)_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

ModifiedbyLGuo;第二次模擬總結(jié)程序設(shè)計(jì)語言C3224數(shù)素?cái)?shù)Description令Pi表示第i個(gè)素?cái)?shù)?,F(xiàn)任給兩個(gè)正整數(shù)M<=N<=104,請輸出PM到PN的所有素?cái)?shù)。Input輸入在一行中給出M和N,其間以空格分隔。Output輸出從PM到PN的所有素?cái)?shù),每10個(gè)數(shù)字占1行,其間以空格分隔,但行末不得有多余空格。2SampleInput527SampleOutput111317192329313741434753596167717379838997101103參考代碼3intmain(){intm,n,cnt,i,ncnt;//freopen("in.txt","r",stdin);scanf("%d%d",&m,&n);cnt=ncnt=0;for(i=2;cnt<=n;i++){if(isPrime(i)){cnt++;//統(tǒng)計(jì)是第幾個(gè)素?cái)?shù)if(cnt>=m&&cnt<=n){ncnt++;//統(tǒng)計(jì)打印了幾個(gè)if(ncnt%10==1)printf("%d",i);elseprintf("%d",i);if(ncnt%10==0)printf("\n");}}}if(ncnt%10!=0)printf("\n");return0;}#include<stdio.h>intisPrime(intm){intflag=1,i;for(i=2;i<=m/2;i++){if(m%i==0){flag=0;break;}}returnflag;}本題自我檢討:輸出格式不在話下,提交一看TimeLimitExceed,頓時(shí)懷疑算法不對,覺得求素?cái)?shù)不夠高效。。。結(jié)果是因?yàn)樽兞繘]用對造成了死循環(huán)。TimeLimitExceed,幾乎都是死循環(huán)造成!OutputLimitExceed,幾乎都是死循環(huán)造成!尤其查看輸出!freopen沒有注釋掉,可能造成死循環(huán)!PresentationError,福利啊,表示輸出格式不對,一般是少了"\n"或者多了"\n"(這個(gè)很偶然);或者多了少了空格!41024銀行利率Description設(shè)行1年期定期存款年利率為2.25%,存款本金為deposit元,試編程計(jì)算并輸出n年后的本利之和。Input輸入一個(gè)正整數(shù)和一個(gè)實(shí)數(shù),分別代表存款年數(shù)和存款本金。Output輸出一個(gè)雙精度實(shí)數(shù),小數(shù)點(diǎn)后保留6位有效數(shù)字。5SampleInput2100SampleOutput104.550625參考代碼6#include<stdio.h>intmain(){intn,i;doubled;//freopen("in.txt","r",stdin);scanf("%d%lf",&n,&d);//讀入年數(shù)和本金for(i=1;i<=n;i++){d*=1.0225;}printf("%.6f\n",d);//要是數(shù)不對可以用插樁法一步步查,看看是不是多循環(huán)或者少循環(huán)了一次return0;}1004A+BProblemIVDescription給定一些整數(shù),對他們求和。Input輸入數(shù)據(jù)有多行。每行數(shù)據(jù)中第一個(gè)整數(shù)N(0<=N<=100),后面跟著N個(gè)整數(shù)ai

(-1000<=ai<=1000)最后一行數(shù)據(jù)是0,標(biāo)志著輸入結(jié)束。

0一行本身不需要計(jì)算輸出。Output對每一行N個(gè)正整數(shù)ai求和并輸出。7SampleInput412345123450SampleOutput1015參考代碼8//解法1#include<stdio.h>intmain(){intn,i,sum,tmp;

//freopen("in.txt","r",stdin);while(scanf("%d",&n)&&n!=0){sum=0;for(i=1;i<=n;i++){

scanf("%d",&tmp);sum+=tmp;}printf("%d\n",sum);}return0;}9//解法2#include<stdio.h>intmain(){intn,i,sum,tmp;

//freopen("in.txt","r",stdin);

do{

scanf("%d",&n);if(n==0)break;

else{

sum=0;for(i=1;i<=n;i++){scanf("%d",&tmp);sum+=tmp;}printf("%d\n",sum);}}while(1);return0;}1051統(tǒng)計(jì)數(shù)字字符的個(gè)數(shù)1Description輸入一行字符,以回車符作為輸入結(jié)束的標(biāo)志。統(tǒng)計(jì)其中數(shù)字字符的個(gè)數(shù)Input多個(gè)字符,以回車符結(jié)束,回車符不作為有效字符Output輸出一個(gè)整數(shù),表示數(shù)字字符的個(gè)數(shù)。10SampleInput12abrt12@2013SampleOutput8參考代碼11#include<stdio.h>intmain(){intsum;charc;

//freopen("in.txt","r",stdin);sum=0;while(scanf("%c",&c)!=EOF){if(c>='0'&&c<='9')//字符比較,實(shí)際上是比較其ASCII碼sum++;}printf("%d\n",sum);return0;}其他解法:1)c>=48&&c<=572)(int)c>=48&&(int)c<=57迷信的吳醫(yī)生和機(jī)智的護(hù)士Description吳醫(yī)生是個(gè)很迷信的醫(yī)生,他認(rèn)為與4相關(guān)的數(shù)字都會帶來厄運(yùn),因此他拒絕為所有掛號單序號中有數(shù)字4,或序號能被4整除的病人看病。(每張掛號單有一個(gè)唯的序號)小李是一名年輕的護(hù)士,雖然對吳醫(yī)生的怪癖好不能理解,但他是內(nèi)科最權(quán)威的醫(yī)生,小李無法阻止他的我行素。為了能讓每個(gè)病人都順利的看上病,小李決定只給病人們不含有數(shù)字4,并且不被4整除的序號掛單。今天來了n位病人都要掛吳醫(yī)生的專家門診(n為正整數(shù),且n<25),請問小李能開給這n位病人的掛號單的序號總和最小是多少?Input輸入為一行,正整數(shù)n,n<25。Output輸出為一行,輸出最小的序號總和。12SampleInput10SampleOutput67HINT(1)對樣例的說明:67=1+2+3+5+6+7+9+10+11+13(2)提示:前15個(gè)最小的序號是:12356791011131517181921(3)提示:第25小的序號是3513參考代碼14#include<stdio.h>intmain(){intn,i,sum,cnt;//freopen("in.txt","r",stdin);scanf("%d",&n);sum=cnt=0;

//sum用來計(jì)算總和,cnt統(tǒng)計(jì)已經(jīng)加了幾個(gè)病人的號碼for(i=1;cnt<n;i++){if(i%10!=4&&i%4!=0){//該題降低了難度,最大序號是35,也就是含4的數(shù)只有41424sum+=i;

cnt++;}}printf("%d\n",sum);return0;}如果數(shù)很大,用循環(huán)進(jìn)行整數(shù)拆分2720切餅Description古有善切餅者,名苞丙,苞丁之弟也。把一張大餅置于板上,不許離開,每一刀切下去都是直線。問切n(0≤n≤20)刀最多能分成少塊?例如:如果n=0,則最多能分成1塊;如果n=1,則最多能分成2塊,比第0刀多出1塊;如果n=2,則最多能分成4塊,比第1刀多出2塊;如果n=3,則最多能分成7塊,比第2刀多出3塊;以此類推……Input一個(gè)正整數(shù)n。Output切n刀最多能分成的塊數(shù)。15SampleInput4SampleOutput11參考代碼16#include<stdio.h>intmain(){intn,i,sum;//freopen("in.txt","r",stdin);scanf("%d",&n);sum=1;for(i=1;i<=n;i++){

sum+=i;}printf("%d\n",sum);return0;}研究規(guī)律,發(fā)現(xiàn)就是計(jì)算累加和1098二哥摘蘋果Description二哥種的一棵蘋果樹到了采摘的時(shí)候,但是由于二哥身高的限制,有些蘋果太高摘不到。于是二哥借來了一個(gè)凳子,踩在上面可以摘到更多的蘋果。二哥想在摘蘋果之前知道自己能摘到多少蘋果,如果實(shí)在太少,他寧可坐在樹下等蘋果自己掉下來砸到頭上。Input輸入共有兩行:第1行有3個(gè)整數(shù),分別表示二哥的身高、凳子的高度和蘋果的個(gè)數(shù)n。第2行有n個(gè)整數(shù),分別表示每個(gè)蘋果的高度。Output輸出一個(gè)整數(shù)m,表示二哥最多能摘到的蘋果的個(gè)數(shù)為m。17HINT對于全部數(shù)據(jù):高度為1000以下的正整數(shù),蘋果的個(gè)數(shù)1≤n≤1000。18SampleInput1774010180151152193168255278303211217SampleOutput7參考代碼19#include<stdio.h>intmain(){inth,h2,n,m,i,tmp;

//freopen("in.txt","r",stdin);scanf("%d%d%d",&h,&h2,&n);//分別讀入身高、板凳高、蘋果數(shù)m=0;//m用來計(jì)數(shù),記得初始化for(i=1;i<=n;i++){

scanf("%d",&tmp);//循環(huán)讀入n個(gè)蘋果的高度if(h+h2>=tmp)m++;}printf("%d\n",m);return0;}2669勤勞的螞蟻Description有兩只勤勞的螞蟻在準(zhǔn)備食物,為了自我激勵(lì)一下,它們打算開展比賽,看誰在一段時(shí)間內(nèi)準(zhǔn)備的食物多一些。你能幫忙做個(gè)裁判嗎,來統(tǒng)計(jì)一下哪只螞蟻準(zhǔn)備得更加多一些?Input輸入有若干行,每行2個(gè)數(shù)字,第一個(gè)整數(shù)表示螞蟻(1表示1號螞蟻,2表示2號螞蟻,不會出現(xiàn)其他數(shù)字)。第二個(gè)整數(shù)表示該螞蟻帶回的食物數(shù)量,假設(shè)該數(shù)據(jù)都在合法范圍內(nèi)。當(dāng)輸入兩個(gè)數(shù)字都為0(即00)時(shí)表示輸入結(jié)束。Output輸出拖回食物多的螞蟻的編號和食物總數(shù)量。如果相同,輸出“equal”(輸出不包含雙引號)。輸出后換行。2021SampleInput1229172611201221100SampleOutput22622//解法1#include<stdio.h>intmain(){intno,num,sum1,sum2;//no表示第幾號螞蟻;num每行讀的食物數(shù)

//freopen("in.txt","r",stdin);sum1=sum2=0;//sum1表示螞蟻1食物累計(jì)數(shù)

while(scanf("%d%d",&no,&num)&&!(no==0&&num==0)){if(no==1)sum1+=num;//是螞蟻1則加到sum1elsesum2+=num;}if(sum1==sum2)printf("equal\n");elseif(sum1>sum2)printf("%d%d\n",1,sum1);elseprintf("%d%d\n",2,sum2);return0;}換成:(no||num)行嗎?23//解法2#include<stdio.h>intmain(){intno,num,sum1=0,sum2=0;do{

scanf("%d%d",&no,&num);if(no==0&&num==0)break;

else{if(no==1)sum1+=num;elsesum2+=num;}}while(1);if(sum1==sum2)printf("equal\n");elseif(sum1>sum2)printf("%d%d\n",1,sum1);

elseprintf("%d%d\n",2,sum2);return0;}1260青年歌手大獎(jiǎng)賽_評委會打分Description青年歌手大獎(jiǎng)賽中,評委會給參賽選手打分。選手得分規(guī)則為去掉一個(gè)最高分和一個(gè)最低分,然后計(jì)算平均得分,請編程輸出某選手的得分Input輸入數(shù)據(jù)有多組,每組占一行,每行的第一個(gè)數(shù)是n(2<n<100),表示評委的人數(shù),然后是n個(gè)評委的打分。Output對于每組輸入數(shù)據(jù),輸出選手的得分,

結(jié)果保留2位小數(shù),每組輸出占一行。24SampleInput39998974100999897SampleOutput98.0098.5025#include<stdio.h>intmain(){intn,i,score,sum,max,min;//freopen("in.txt","r",stdin);max=0;min=101;//初始化,max先給個(gè)足夠小的數(shù),min先給個(gè)足夠大的數(shù)

while(scanf("%d",&n)!=EOF)//不確定組數(shù),讀到末尾為止{sum=0;//sum累計(jì)每行的值,初始化為0,不要寫到while外面了for(i=1;i<=n;i++){scanf("%d",&score);if(max<score)max=score;if(min>score)min=score;sum+=score;}printf("%.2f\n",(sum-max-min)*1.0/(n-2));

}return

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論