版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
等中科技火孚課程實(shí)驗(yàn)報(bào)告課程名稱: C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)專業(yè)班級(jí): 學(xué)號(hào): 姓名: 指導(dǎo)教師: 報(bào)告日期: 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院1流程控制實(shí)驗(yàn)TOC\o"1-5"\h\z\o"CurrentDocument"1.1程序改錯(cuò) 12程序修改替換 錯(cuò)誤!未定義書簽。\o"CurrentDocument"1.3程序設(shè)計(jì) 31.4小結(jié) 18\o"CurrentDocument"2數(shù)組程序設(shè)計(jì)實(shí)驗(yàn) 19\o"CurrentDocument"1程序改錯(cuò)與跟蹤調(diào)試 19\o"CurrentDocument"2程序完善與修改替換 22\o"CurrentDocument"3程序設(shè)計(jì) 274小結(jié) 52\o"CurrentDocument"3結(jié)構(gòu)與聯(lián)合實(shí)驗(yàn) 54\o"CurrentDocument"1表達(dá)式求值的程序驗(yàn)證 54\o"CurrentDocument"2源程序修改替換 56\o"CurrentDocument"3.3程序設(shè)計(jì) 593.4小結(jié) 95\o"CurrentDocument"參考文獻(xiàn) 961流程控制實(shí)驗(yàn)1.1程序改錯(cuò)/*合數(shù)判斷器*/#include<stdio.h>intmain(void)(inti,x,k,flag=0;printf("本程序判斷合數(shù),請(qǐng)輸入大于1的整數(shù),以ctrl+Z結(jié)束\n");while(scanf&x)!=EOF)for(i=2,k=x?l;i<=k;i++){if(!x%i) ※※此處應(yīng)改為if(!(x%i))或改為if(x%i==0)(flag=l;break;)}if(flag=l) ※※此處應(yīng)改為flag==l,一個(gè)“=”表示賦值printf(*%d是合數(shù)、n”,x);elseprintf(*%d不是合數(shù)\n”,x);※※此處應(yīng)添加語(yǔ)句flag=0,否則無(wú)論是否是合數(shù)flag的值始終是1return0;33不是合數(shù)44是合數(shù)5不是合數(shù)66是合數(shù)7不是合數(shù)88是合數(shù)99站合數(shù)ZProcessexitedafter12.26secondswithreturnvalue0請(qǐng)接任點(diǎn)健繼續(xù)...■1.2程序修改替換(1)修改方案:將原實(shí)驗(yàn)程序中if語(yǔ)句的break改為k=i;保證了if語(yǔ)句執(zhí)行后退出循環(huán)。(2)修改方案:將for循環(huán)改為如下代碼:inti=2,k;k=x?l;do{if(!(x%i)){flag=l;break;}i++;}while(i<=k);3C:\U$ef$\20140\Desktop\Operate\_t?l20201104\6/WfS(2.exe - □X33不足合數(shù)7878是合數(shù)79不是合數(shù)103103不是合數(shù)234234是合數(shù)1414是合數(shù)1717不足合數(shù)*ZProcessexitedafter28.22secondswithreturnvalue0請(qǐng)按任意健繼續(xù)...(3)修改方案:定義兩個(gè)函數(shù),一個(gè)函數(shù)判斷為合數(shù),另一個(gè)判斷是純粹合數(shù),并在main函數(shù)中調(diào)用判斷純粹合數(shù)的函數(shù),輸出所有的3位純粹合數(shù)。程序代碼如下:#include<stdio.h>intNotPrime(intx)〃判斷是合數(shù)iinti,k,flag=0;for(i=2,k=x?l;i<=k;i++){if(x%i==0){flag=l;break;))returnflag;}〃判斷是純粹合數(shù)intpure(intx){intflag=0,count=0;for(intj=0;j<3;++j){if(NotPrime(x))count++;x/=10;
if(count==3)flag=l;returnflag;}intmain(void){intnum=0;printf(〃純粹合數(shù)有\(zhòng)n");for(intx=100;x<=999;++x){if(pure(x)){printf(,z%d\t/z,x);num++;if(num%10==0)printf("\n");}Ireturn0;}4224424.-)4468489602623634646658680692802SM8268488618728859069189309429549649869984204414534664224424.-)4468489602623634646658680692802SM826848861872885906918930942954964986998420441453466488600622633669690801813S258478608718849059179289409529639859968025681246890246802467912450456892345680124578012356894444446666W6888888899999999791457000^578900^56903568012402568923456891245680123568944441446666666888888999999990628506284960929>405466J87980820M55687902142536496081934444446666666888888999999990527L4860839508283952)65>86970719J43546778K)l132435485980?92444444666666688888899999999467924678145668226602346890oo~45890235689014567010^34569444444666666688888899999999356813567034557115590235789o245099023568901456781234568444444666666688888889999999245602456922446004489124668■J02^-5890234689014567802345687444444666666688&88889999999五-F0345903458013358923680135579-hu0245690234689012467802345689-9444444666666688888889999999gProcessexitedafter0.02486secondswithreturnvalue請(qǐng)按任意鍵繼續(xù)...1.3程序設(shè)計(jì)1.計(jì)算稅金1)解題思路:2)程序源代碼:①利用switch語(yǔ)句:#include<stdio.h>intmain(void){intwage,tax,flag=l;while(flag){printf(〃\n請(qǐng)輸入工資:\n〃);〃提示輸入工資scanf(〃%d〃,&wage);tax=(int)((wage)/1000);//用于計(jì)算不同的工資范圍switch(tax){case0:printf("您不用交稅金!”);break;case1:printf(〃您應(yīng)交稅金:%.3f”,(float)wage*。.05);break;case2:printf(“您應(yīng)交稅金:%.3fz,,(float)wage*0.1);break;case3:printf(〃您應(yīng)交稅金:%.3f/z,(float)wage*0.15);break;case4:printf(“您應(yīng)交稅金:%.3f”,(float)wage*0.2);break;default:printf("您應(yīng)交稅金:%.3f/z,(float)wage*O.25);break;} 〃強(qiáng)制類型轉(zhuǎn)換,輸出較為精確的浮點(diǎn)數(shù)printf("\n是否需要繼續(xù)計(jì)算?(0orl)\n\n");scanf &flag);〃用于決定是否繼續(xù)循環(huán)的語(yǔ)句}return0;)②利用if語(yǔ)句:#include<stdio.h>intmain(void){intx,y,flag=l;while(flag){printf("\n請(qǐng)輸入工資:\n");〃提示輸入工資scanf&x);if(x<0)printf("請(qǐng)輸入正整數(shù)!”);if(x<1000)printf("您不用交稅金!”);if(x<2000&&x>=1000)printf("您應(yīng)交稅金:%.3f/z,(float)x*0.05);if(x<3000&&x>=2000)printf("您應(yīng)交稅金:%.3r,(float)x*0.1);if(x<4000&&x>=3000)printf("您應(yīng)交稅金:%.3f,z,(float)x*0.15);if(x<5000&&x>=4000)printf("您應(yīng)交稅金:%.3f(float)x*0.2);if(x>5000)printf("您應(yīng)交稅金:%.3r,(float)x*0.25);
〃強(qiáng)制類型轉(zhuǎn)換,輸出較為精確的浮點(diǎn)數(shù)printf("\n是否需要繼續(xù)計(jì)算?(0or1)\n\n*);scanf(飛d”,&flag); 〃用于決定是否繼續(xù)循環(huán)的語(yǔ)句return0;3)測(cè)試:X[0,1000)[10000,2000)[2000,3000)[3000,4000)[4000,5000)[5000,+8)輸入值99911002400345643125679結(jié)果不用交稅金55.000240.000518.400862.4001419.750圖1-1程序設(shè)計(jì)題1的運(yùn)行結(jié)果.輸出滿足條件的三位數(shù)1)解題思路:2)程序源代碼:#include<stdio.h>intmain(void){for(inti=100;i<=999;i++){〃for循環(huán)語(yǔ)句確定是三位數(shù)intt;t=i*i;if(t%1000==i)〃if判斷該數(shù)平方末三位是否是該數(shù)本身
printf(*%d\nw,i);〃若結(jié)果為真,輸出該值。return0;3)測(cè)試:[1C:\Users\20140\Desktop\Operate\±ei20201104\2.exe376625Processexitedafter0.01501secondsvithreturnvalue0請(qǐng)按任意鍵繼續(xù)...圖1-2程序設(shè)計(jì)題2的運(yùn)行結(jié)果.股票收盤價(jià)格波動(dòng)值1)解題思路:2)程序源代碼:#include<stdio.h>doubleabs(doublea){if(a<0)a=-a;returna;"/定義絕對(duì)值函數(shù)intmain(void){doublea,b,max;intday;printf(”請(qǐng)輸入天數(shù):\n");scanf(〃%d〃,&day);printf(〃請(qǐng)輸入這些天的收盤價(jià)格:\n〃);scanf(z,%ir,&b);〃提示輸入收盤天數(shù)與每天收盤價(jià)格for(inti=l;i<day;++i){a=b;scanfC%ir,&b);if(abs(a-b)>max)//if語(yǔ)句將每次的最大波動(dòng)值賦給maxmax=abs(a-b);)printf(,z%.21f\n",max);〃輸出最大波動(dòng)值return0;3)測(cè)試:項(xiàng)目測(cè)試輸入輸出115396.0021.231.782.571.590.983200267.45345.8978.443CAUter$\20l40U)etktop\OperateVt9l2020H04\3.exe — □X這4天最大波動(dòng)值為6.00是否需要繼續(xù)計(jì)算?(0or1)1清輸入天數(shù):-1濟(jì)城入這些大的收&價(jià)格:231.782.571.59這4天最大波動(dòng)值為0.98是否需要維續(xù)計(jì)算?(0or1)1謂輸入天數(shù):3詁輸入這些天的收盤價(jià)格:200267.45345.89這3天最大波動(dòng)值為78.44是否需要繼續(xù)計(jì)尊?(0or1)0(Processexitedafter36.77secondsvithreturnvalue0 圖1-3程序設(shè)計(jì)題3的運(yùn)行結(jié)果.將正文的多個(gè)空格用一個(gè)代替1)解題思路:2)程序源代碼:#include<stdio.h>intmain(void){chara,b;printf(〃請(qǐng)輸入一段正文,并以Ctrl+Z結(jié)束:\n〃);while((b=getchar())!=EOF){if(!(a=32&&b=32))〃如果前后兩個(gè)字符均為空格,則只輸出一個(gè)putchar(b);a二b;〃將后一個(gè)字符賦給前一個(gè)字符return0;
3)測(cè)試:項(xiàng)目測(cè)試輸入輸出1Hust1037Hust10372I love hustIlovehust3XuruidaisahusterXuruidaisahuster3C:\Users\20140\De$ktop\Operate\±9U0201104\4.exe - □XMust1037Hust1037IlovehustIlovehustXuruidaisahusterXuruidaisahusterProcessexitedafter38.27secondswithreturnvalue0請(qǐng)按任意陵繼續(xù)..?圖1-4程序設(shè)計(jì)題4的運(yùn)行結(jié)果.輸出10行楊輝三角1)解題思路:2)程序源代碼:Sinclude<stdio.h>intmain(){inti,j,a[100][100];〃定義一個(gè)二維數(shù)組,代表行和列for(i=0;i<10;++i)a[i][0]=l;〃通過(guò)遍歷,將第一列的值賦為1for(i=0;i<10;++i)for(j=l;j<10;++j)a[i][j]=(a[i][jT])*(i-j+l)/j;〃應(yīng)用公式將值存入二維數(shù)組中for(i=0;i<10;++i)for(j=i;j<10;++j)printfC");〃打印空格,形成三角格式for(j=0;j<10;++j)if(a[i][j]!=0)printf("4d”,a[i][j]);〃按一個(gè)數(shù)字占四個(gè)字符的域?qū)捿敵鰌rintf("\n");〃確保換行輸出return0;3)輸出結(jié)果:圖1-5程序設(shè)計(jì)題5的運(yùn)行結(jié)果.輸出梅森素?cái)?shù)1)解題思路:2)程序源代碼:#include<stdio.h>#include<math.h>longisprime(longn)〃定義一個(gè)函數(shù)判斷是素?cái)?shù){intflag=l;for(inti=2;i<=sqrt(n);i++)(if(n%i==0){flag=0;break;)}returnflag;}longisMasonNumber(1ongnum)〃定義一個(gè)函數(shù)判斷是梅森數(shù)(intflag=0;if(((num+1)&(num))==0)flag=l;returnflag;}intcount(longx)〃定義一個(gè)求某數(shù)是2的幾次方的函數(shù)(intcount=0;inttotal=l;while(total<x)(total=total*2;++count;)if(total==x)returncount;)intmain(void)(longi=2,m;printf("請(qǐng)輸入一個(gè)長(zhǎng)度大于三的長(zhǎng)整數(shù):\n");scanf("%d",&m);for(;i<=m;++i)(if(isMasonNumber(i))〃if循環(huán)的嵌套,先判斷是梅森數(shù),再判斷是否為梅森素?cái)?shù)if(isprime(i))printf(Z,M(%d)=%ld\n/z,count(i+1),i);〃按示例輸出return0;)3)測(cè)試:輸入一個(gè)較大的m可得到結(jié)果如圖3C:\Users\2O140\Desktop\OperateVttfU0201104\6.exe 一口X12345678W2)=3W3)=7■(5)=31*(7)=127*(13)=819111(17)=13107111(19)=524287Processexitedafter2.18secondswithreturnvalue0力按任。鍵維續(xù)???■圖1-6程序設(shè)計(jì)題6的運(yùn)行結(jié)果7.篩法構(gòu)造素?cái)?shù)表1)解題思路:2)程序源代碼:#include<stdio.h>ttdefinescale100000〃可改變素?cái)?shù)表輸出范圍intmain(){longlongi,j,a[scale],prime[scale];for(a[0]=a[l]=0,i=2;i<scale;i++)
a[i]=l;for(i=2;i<scale;i++){if(a[i]){for(j=i*2;jCscale;j+=i)a[_j]=0;〃篩掉素?cái)?shù)的倍數(shù)longlongn=0;for(i=2;i<scale;++i)if(a[i]){prime[n]=iif(a[i]){prime[n]=i;++n;〃將表中的下標(biāo)(素?cái)?shù))存入素?cái)?shù)表中l(wèi)onglongm;scanf&m);longlongq=0;for(;prime[q+lkm;q++)〃查找素?cái)?shù)表輸出李生素?cái)?shù)if(prime[q+1]-prime[q]==2)printf(zz(%lld,%lld)\n<z,prime[q],prime[q+1]);return0;}3)測(cè)試輸出:分別輸入m的值為50,150,500可得如圖結(jié)果:□IC:\Users\20140\Desktop\Operate\_t^L20201104\10.exe50(3,5)(5,7)□IC:\Users\20140\Desktop\Operate\_t^L20201104\10.exe50(3,5)(5,7)(11,13)(17,19)(29,31)(41,43)(3C:\Users\2O140\Desktop\Operate\_ttfl20201104\10.exe15^^(3.5)(5,7)(11.13)(17.19)(29,31)(41,43)(59,61)(71,73)(101,103)(107,109)(137,139)Processexitedafter1.198secondswithreturnvalue0請(qǐng)按任意鍵繼續(xù)...■Processexitedafter1.765secondswithreturnvalue0,「急鍵繼續(xù)...■BC:\UsefS\20140\Desktop\Operate\JtVl20201104\10.exe?苑困在[4.1000000]之間的值:500(11,13)(17,19)(29.31)(41,43)(59,61)(71,73)(101,103)(107,109)(137,139)(149,151)(179,181)(191,193)(197,199)(227,229)(239,241)(269,271)(281,283)(311,313)(347,349)(419,421)(431,433)(461,463)Processexitedafter1.953secondswithreturnvalue0生拉仃也選?。?_圖1-7 程序設(shè)計(jì)題7的運(yùn)行結(jié)果8.輸出符合形式的表達(dá)式1)解題思路:2)程序源代碼:#include<stdio.h>intmain(){intp,i=0,j=O,k=0,A[10],x;longm=0,n=0;scanf&p);for(;n<=98765;n++){x=0;m=n;for(i=4;i>=0;i—){ 〃將被除數(shù)各位存在數(shù)組中A[i]=m%10;m=m/10;}if((n%p)!=0)continue;else{ 〃當(dāng)被除數(shù)可整除輸入的數(shù)時(shí),將除數(shù)的各位存在數(shù)組中m=n/p;for(i=9;i>=5;i-){A[i]=m%10;m=m/10;})for(k=0;k<=8;k++){ 〃嵌套循環(huán),當(dāng)有重復(fù)數(shù)字時(shí)退出循環(huán)for(j=k+l;j<=9;j++){if(A[k]==A[j]){X=1;break;})if(x==l)break;}if(x==O){ 〃循環(huán)得到保存在數(shù)組中的數(shù)字,并按格式輸出for(i=0;i<=4;i++)printfA[i]);printf("/");for(i=5;i<=9;i++)printf(V,A[i]);printf(*=%d\n*,p);return0;)3)測(cè)試:項(xiàng)目測(cè)試輸入輸出13275168/02349=3222439528/01647=2446872/01953=2436898736/01452=68C1C:\Users\2O140\Desktop誄=1.exe-□X13275168/02349=32Processexitedafter1.401secondswithreturnvalue0請(qǐng)按任怠鍵維續(xù)...13C:\User5\20140\Desktop誄?名1.exe□1C:\Users\20140\Desktop\^^€1.exe2439528/01647=244687201953=246S98736/01452=68Processexitedafter1.777secondswithreturnvalue0請(qǐng)按任意鍵繼續(xù)...Processexitedafter請(qǐng)按任意鍵繼接.??,1.322secondsvithreturnvalue0圖1-8程序設(shè)計(jì)題8的運(yùn)行結(jié)果1.4小結(jié)通過(guò)本節(jié)有關(guān)程序設(shè)計(jì)中流程控制的程序設(shè)計(jì)題目,我進(jìn)一步地練習(xí)了如何運(yùn)用嵌套循環(huán),掌握了用篩法求素?cái)?shù)表,但是在按照格式輸出結(jié)果,算法的實(shí)現(xiàn)上尚還欠缺能力。叵t=Ox62feOO-Programming"&=0x62fe10Muage叵t=Ox62feOO-Programming"&=0x62fe10Muageagi=12回j=。[atl^OAOOO'2數(shù)組程序設(shè)計(jì)實(shí)驗(yàn)2.1程序改錯(cuò)與跟蹤調(diào)試(1)單步執(zhí)行源程序的跟蹤調(diào)試Qt=Ox62feOO"Programming"@s=0x62fe10"Language"Qis12Qj=o◎姆]=0、000'由調(diào)試結(jié)果可知,當(dāng)其進(jìn)入strcate函數(shù)時(shí),字符數(shù)組t和s的內(nèi)容都是正確的。當(dāng)處在第二個(gè)while語(yǔ)句時(shí)i=12,但是由于“Programming"的字符個(gè)數(shù)是11,因此此時(shí)應(yīng)該是在t[l1]的位置,所以i應(yīng)該減去1;才能順利完成后續(xù)的拼接操作。而當(dāng)執(zhí)行到花括號(hào)時(shí),發(fā)現(xiàn)按預(yù)料的一樣并未執(zhí)行正確。因?yàn)閠[ll]的值也為,\0',所以此時(shí)字符數(shù)組t的結(jié)果就像是沒有拼接一樣,其實(shí)是從W2]開始進(jìn)行了復(fù)制操作。我們添加代碼i=i-l;后得到如下結(jié)果:我們發(fā)現(xiàn)此時(shí)s的值輸出并不正確。t=0x62fe00"ProgrammingLanguage1s:0x62fe10uage,,is11血j=0@中]=0、000'3voidstrdeIc(char(](char);4intmain(void)5E316chara[]?MLanguage".b[]?7printf(*%?%s\n".b.a);?8?9B str■ str陲10return0;11L)1213voidstrcate(chart(].char(14E15inti■0,j■0;16whiIe(t(i*?]);17i■i-1;18whiIe((t[i+?]■s[j+?])I?9■ I2021void$trdelc(chars[].char(22E3(23intj.k;24for(j-k-O;s(jJ!-*\O':j25if(s[j]I?c)s【kp=s[j];26L)#incIude<stdio.h>2voidstrcate(char[ ],char[(2)跟蹤進(jìn)入strdelc函數(shù)s=0x62fe00^ProgrammingLanguage"回k=026L)我們看到,初始進(jìn)入函數(shù)時(shí)值是正確的,然而最終得到的結(jié)果卻是ProgrmmingLngugeage,正確結(jié)果是ProgrmmingLnguge,可見數(shù)組末尾多了"age”三個(gè)字符。這是由于數(shù)組本該在s[k]處終止,因此,要將其值賦為'\0'。最后得到結(jié)果如圖:13C:\Users\20140\Desktop\Operate\C語(yǔ)音上機(jī)客賽\第五次上機(jī)20201119\程序改播與跟蹤調(diào)試.exe - □ProgrammingLanguageProgrammingLanguageLanguageProgmnningLnguge最終代碼修改方案如下:#include<stdio.h>voidstrcate(char[],char[]);voidstrdelc(char[],char);intmain(void)(chara口=“Language”,b口="Programming”;printf(〃%s%s\n,z,b,a);strcate(b,a);printf(z,%s%s\nz,,b,a);strdelc(b,'a');printf(〃%s\n〃,b);return0;voidstrcate(chart[],chars[])(inti=0,j=0;while(t[i++]);此處添加代碼i=i-l;while((t[i++]=s[j++])!='\0');}voidstrdelc(chars[],charc)intj,k;for(j=k=0;s[j]!=\0";j++)if(s[j]!=c)s[k++]=s[j];此處添加代碼s[k]=,\0';)2程序完善與修改替換(1)文本去重①完善后代碼:include<stdio.h>include<string.h>voidRemoveDuplicate(char*s);intmain(){charstr[200];printf("Inputstrings,endofCtrl+z\n〃);while(fgets(str,200,stdin)!=NULL){RemoveDuplicate(str);printfstr);)return0;)voidRemoveDuplicate(char*s){intr,w,i,len;len=strlen(s);for(r=w=0;r<1en;r++){if(s[r]) {s[w++]=s[r];for(i=r+l;i<len;i++){if(s[i]==s[r])s[i]='\0';s[w]-\0*;運(yùn)行結(jié)果如下:BC:\Users\20140\Desktop\Operate\C語(yǔ)音上機(jī)回8\?五次上機(jī)20201119展序亢普和修改*1J.exe - □XInputstrings,endofCtrl+z12eerer12erhusthust666!!hust6!*ZProcessexitedafter28.54secondsvithreturnvalue0請(qǐng)按任應(yīng)椎納撅...■②空間換時(shí)間提高效率:include<stdio.h>include<string.h>voidRemoveDuplicate(char*s);intmain(){charstr[200];printf("Inputstrings,endofCtrl+z\n〃);while(fgets(str,200,stdin)!=NULL){RemoveDuplicate(str);printfstr);)return0;)voidRemoveDuplicate(char*s){inti,j,len,remainder;intcheck[8]={0};len=strlen(s);for(i=j=0;i<len;i++) {remainder=s[i]%32;if((check[s[i]?5]&(1<<remainder))==0)s[j++]=s[i];check[s[i]?5]|=(1?remainder);s[j]=>\0';)運(yùn)行后截圖:□IC:\Users\20140\Desktop\Operate\CS8±m(xù)^tt\B£^Lt9U0201112.exe 一口XInputstrings,endofCtrl+z12eerer12erhusthust888!!!hust8!prosr&iHDingprogaainZProcessexitedafter33.19secondsvithreturnvalue0請(qǐng)按任意鍵繼續(xù)...(2)約瑟夫問題①完善代碼:include<stdio.h>include<string.h>intmain(void)(intM,N;scanf(%d%d”,&M,&N);inta[M],b[M];inti,j,k;for(i=0;i<M;i++)a[i]=i+l;for(i=M,j=0;i>l;i-)(for(k=l;k<=N;k++)if(++j>i-l)j=0;b[M-i]=(j?a[j-l]:a[i-l]);if(j)for(k=-j;k<i;k++)a[k]=a[k+l];)for(i=0;i<M-l;i++)printf(*%d\n*,b[i]);printf(*%d*,a[0]);return0;I運(yùn)行截圖如下BC:\Users\20140\Desktop\OperateVt;ffl^\Sfi;>Ltyi20201119\的完善和修改共2.1.exe00J49Processexitedafter2.229secondswithreturnvalue0請(qǐng)按任意鍵繼續(xù)...EC:\Users\20140\Desktop\OperateVt販圓便五牡912020111和修改費(fèi)奐2.1.exe135759Processexitedafter7.162secondswithreturnvalue0請(qǐng)按任意鍵繼續(xù)...②提高效率:#include<stdio.h>intmain()(intj,m,i=0;scanf(',%d%d,,,&j,&m);intchecklj];for(;i<j;i++)check[i]=0;intk=0,count=l,n=j;for(i=0;n>=1;)(if(m==count)k=i%j;check[k]=l;n-Scount=0;〃此時(shí)遍歷下標(biāo)還在出列元素,而下一個(gè)元素才是從1開始報(bào)數(shù),〃故此處將count置為0,當(dāng)下標(biāo)i遍歷至下一個(gè)未出列元素時(shí)count再加1)i++;if(check[i%j]!=l)count++;)printf("%d\n",k+l);)運(yùn)行截圖如下2000004147451Processexitedafter3.576secondswithreturnvalue0請(qǐng)按任意鍵繼續(xù).?.100434Processexitedafter3.826secondswithreturnvalue0請(qǐng)按任意鍵繼續(xù)...3程序設(shè)計(jì).輸出二進(jìn)制1)解題思路:2)源代碼:#include<stdio.h>#include<math.h>#include<string.h>intmain(void){intm,n,flag,count=0;scanf("%d〃,&m);inta[50];if(m>=0)n=m;〃判斷正負(fù),如果是正數(shù)不變,如果是負(fù)數(shù)則根據(jù)二進(jìn)制原理加上相應(yīng)值Elsen=m+(int)pow(2,32)+1;for(intj=0;j<32;j++){〃采用除二取余法依次將二進(jìn)制從低位到高位存入數(shù)組flag=n%2;n=(int)(n/2);count++;a[j]=flag;}if(m<0)a[31]=l;〃如果小于零,則把符號(hào)位置為1for(intj=count-l;j>=0;j—){ 〃從高位到低位輸出二進(jìn)制if(j!=0&&(j+l)%4==0&&(j+l)!=32)printf("");〃實(shí)現(xiàn)按格式輸出printfa[j]);Jprintf("\n");return0;3)測(cè)試:項(xiàng)目測(cè)試輸入輸出10000000000000000000000000000000002-111111111111111111111111111111111312300000000000000000000000001111011000000000000000000000000000000000Processexitedafter0.8367secondswithreturnvalue0清按任意鍵繼續(xù)...-1mimimimimi111111111111Processexitedafter1.809secondswithreturnvalue0請(qǐng)按任意鍵繼續(xù)...
\T2200000000000000000000000001111011Processexitedafter0.8412secondswithreturnvalue0請(qǐng)按任意鍵繼續(xù)???圖2-1程序設(shè)計(jì)題1的運(yùn)行結(jié)果2.將成績(jī)與對(duì)應(yīng)姓名進(jìn)行排序1)解題思路:2)源代碼:#include<stdio.h>〃聲明冒泡排序函數(shù)voidbubble_sort(chara[][10],intb[],ints);intmain(void){intflag=l;intscore[1000];intnumber;charname[1000][10];while(flag!=0) {〃使用while函數(shù)實(shí)現(xiàn)多次輸入指令scanf(,z%dz,,&flag);if(flag==l){scanf,&number);for(inti=0;i<number;i++){〃當(dāng)flag的值為1時(shí),提示輸入姓名與成績(jī)scanf(z/%s,z,&name[i]);scanf&score[i]);1:lif(flag==2)〃值為2時(shí),進(jìn)行排序但并不輸出bubble_sort(name,score,number);if(flag=3){〃值為3時(shí),進(jìn)行輸出for(inti=0;i<number;i++){printfC%szz,name[i]);printf(〃%d\n”,score[i]);}})return0;)voidbubble_sort(chara[][10],intb[],ints){inti,j,t;charm[1000][10];for(i=0;i<s-l;i++) {for(j=0;j<s-i-l;j++){if(b[j]<b[j+l]){t=b[j],b[j]=b[j+l],b[j+l]=t;for(intk=0;k<10;k++){〃在冒泡排序成績(jī)時(shí),同時(shí)對(duì)成績(jī)對(duì)應(yīng)的姓名進(jìn)行交換操作m[j][k]=a[j][k];a[j][k]=a[j+l][k];a[j+l][k]=m[j][k]:}.)if(b[j]==b[j+l]){〃如果成績(jī)相等,那么就比較姓名首字母,若仍相同比較下一個(gè)字母,以此類推進(jìn)行排序for(inti=0;i<4;i++){if(a[j][i]>a[j+l][i]){for(intk=0;k<10;k++){m[j][k]=a[j][k]:a[j][k]=a[j+l][k];a[j+l][k]=m[j][k];)break;)if(a[j][i]==a[j+l][i])continue;〃當(dāng)首字母相同時(shí),繼續(xù)下一個(gè)循環(huán)elsebreak;
3)測(cè)試:項(xiàng)目測(cè)試輸入輸出(換行符在輸出截圖中展示)113a90b70c8530a90b70c85214ming80jerry89hong80angel87230jerry89angel87hong80ming80314xhong80jerry89xming80angel87230jerry89angel87xhong80xming8013a90b70c853a90b70c850Processexitedafter22.75secondswithreturnvalue0請(qǐng)按任意鍵繼續(xù)...■8089808797978800v?IXressr8nnenoiProcessexitedafter5.139secondswithreturnvalue0請(qǐng)按任意鍵繼續(xù).?.14xhong80jerry89xming80angel8723jerry89angel87xhong80xming800Processexitedafter0.7989secondswithreturnvalue0請(qǐng)按任意鍵繼續(xù).??■圖2-2程序設(shè)計(jì)題2的運(yùn)行結(jié)果3.對(duì)第2題增加查找功能1)解題思路:只需在第二題的基礎(chǔ)上添加功能按鍵4,,查找功能的流程圖如下2)源代碼:以下只在功能按鍵4處添加注釋#include<stdio.h>#include<string.h>voidbubble_sort(chara[][10],intb[],ints);intsearch(intscored,intcheck,intnumber);intmain(void)(intflag=l;intscore[1000];intnumber;charname[1000][10];while(flag!=0){scanf(〃%d”,&flag);if(flag=l)(scanf&number);for(inti=0;i<number;i++)(scanf(zz%s,z,&name[i]);scanf(zz%d,z,&score[i]);I}if(flag==2)bubble_sort(name,score,number);if(flag=3)(for(inti=0;i<number;i++)printf(〃犧”,name[i]);printf("%d\n",score[i]);if(flag=4)intcheck;scanf("%d”,&check);inti=0,j=number-1,flag=0,k,result[10],p,q;while(i<=j){〃二分查找k=(i+j)/2;if(check>score[k])j=k-l;elseif(check<score[k])i=k+l;else{〃當(dāng)找到第一個(gè)滿足的值時(shí),向前向后繼續(xù)尋找滿足條件的值q=P=k;while(score[-p]==check);while(score[++q]==check);flag=l;break;if(flag==0)printf(z,notfound");//flag==0,也即沒有找到該成績(jī)elsefor(intj=p+l;j<q;j++){〃下面比較名字的字母順序,并將字母順序靠前的姓名通過(guò)交換數(shù)組來(lái)移動(dòng)for(inti=0;i<4&&j<q-l;i++)if(name[j][i]>name[j+l][i])(printf("enter!\n〃);charm[20];strcpy(m,name[j]);strcpy(name[j],name[j+1]);strcpy(name[j+1],m);break;)elsebreak;I〃輸出符合條件的成績(jī)和姓名printf(z,%s%d\n〃,name[j],score[j]);II))return0;)voidbubble_sort(chara[][10],intb[],ints)(inti,j,t;charm[1000][10];for(i=0;i<s-l;i++)(for(j=0;j<s-i-l;j++)t=b[j],b[j]=b[j+l],b[j+l]=t;for(intk=0;k<10;k++){m[j][k]=a[j][k];a[j][k]=a[j+l][k];a[j+l][k]=m[j][k]:}.}if(b[j]==b[j+l])(for(inti=0;i<4;i++)(if(a[j][i]>a[j+l][i])(for(intk=0;k<10;k++)(m[j][k]=a[j][k];a[j][k]=a[j+l][k];a[j+l][k]=m[j][k];)break;)elseif(a[j][i]==a[j+l][i])continue;elsebreak;3)測(cè)試:項(xiàng)目測(cè)試輸入輸出113a90b70c8524850c85214ming80jerry89hong80angel8724800hong80ming80314xhong80jerry89xming80angel8724800xhong80xming80S3C:\Users\20140\Desktop\Operate\±tn^S\85Z;X±^l20201119\3.exea90b70c8585 MMMMc85 HHMHMClC:\Users\20140\Desktop\OperateVt^l^\S5;X±^l20201119\3.exe14ming80jerry89hong80angel8780hong80ming800□IC:\Users\20140\Desktop\OperateVtVl^\a5fi;X±^l20201119\3.exe14xhong80jerry89xming80angel87p80xhong80xming800圖2-3程序設(shè)計(jì)題3的運(yùn)行結(jié)果
5,編寫插入字符串函數(shù)1)解題思路:2)代碼:#include<stdio.h>〃聲明函數(shù)voidcodel(chart[],charmid[],intn);voidstrcate(chartL],chars[]);voidstrains(chart[],chars[],intn);intmain(void){chart[100],s[100];intn;scanf("%s%s%d〃,t,s,&n);strnins(t,s,n);voidcodel(chart[],charmid[],intn){〃將數(shù)組t自第n個(gè)字符后的字符復(fù)制到中間數(shù)組中,并將數(shù)組t的后半部分刪除inti=0,k=n;for(;t[k]!=,\0';i++,k++)mid[i]=t[k];mid[i]=,\0';t[n]=\0,;)voidstrcate(chart[],chars[]){〃將一個(gè)字符串拼接到另一個(gè)字符串后inti=0,j=0,k=-l;while(t[i++]); i―;while((t[i++]=s[j++])!='\0');}voidstrnins(chart[],chars[],intn){〃調(diào)用以上兩個(gè)函數(shù),實(shí)現(xiàn)插入字符串功能,charmid[100];codel(t,mid,n);strcate(t,s);strcate(t,mid);}3)測(cè)試項(xiàng)目測(cè)試輸入(依次為t,s,n)輸出1iyoulove1iloveyou2lifewonderful_0wonderful_life3xudarui2xuruidalyoulove1iloveyouProcessexitedafter8.217secondswithreturnvalue0請(qǐng)按任意鍵繼續(xù)??? lifewonderful_0wonderful」ifeProcessexitedafter10.18secondswithreturnvalue0請(qǐng)按任意鍵繼續(xù)...xudarui2xuruidaProcessexitedafter6.52secondswithreturnvalue0請(qǐng)按任意鍵繼續(xù)..?圖2-4程序設(shè)計(jì)題5的運(yùn)行結(jié)果6.消除類游戲1)解題思路2)代碼:#include<stdio.h>intmain(void){intline,raw,count=l,flag=0;scanf("%d%d”,&line,&raw);intchess[100][100];intcheck[100][100]={0};〃定義一個(gè)檢查數(shù)組check,初始化為0,以實(shí)現(xiàn)當(dāng)出現(xiàn)可消除的數(shù)字時(shí)將對(duì)應(yīng)check數(shù)組的值置為1,從而得以消除intj=0,k=0;〃將棋盤存入數(shù)組中for(inti=0;i<line;i++){for(intj=0;j<raw;j++)scanf("%d〃,&chess[i][j]);I〃行遍歷,當(dāng)出現(xiàn)三個(gè)以上連續(xù)相同的數(shù)字時(shí)用循環(huán)將check數(shù)組對(duì)應(yīng)的值置為1for(inti=0;i<line;i++){count=l;flag=chess[i][0];for(j=l;j<=raw;j++){if(flag==chess[i][j])count++;else{if(count>=3){while(count){check[i][j-count]=l;count―;))count=l;flag=chess[i][j];〃列遍歷,當(dāng)出現(xiàn)三個(gè)以上連續(xù)相同的數(shù)字時(shí)用循環(huán)將check數(shù)組對(duì)應(yīng)的值置為1for(inti=0;i<raw;i++){flag=chess[0][i];count=l;for(j=l;j<=line;j++){if(flag==chess[j][i])count++;else{if(count>=3){while(count){check[j-count][i]=l;count―;}count=1;flag=chess[j][i];printf('\n\n");〃格式化輸出一一當(dāng)check的值為1時(shí)輸出0,否則輸出棋盤中數(shù)字for(inti=0;i<line;i++){for(intj=0;j<raw;j++){if(check[i][j]==D{printf("0");if(j<raw-l)printf("");else{printfchess[i][j]);
if(j<raw-l)printfC*");printf(〃\n");return0;3)測(cè)試項(xiàng)目測(cè)試輸入輸出1443144430431111300004341243402442224400022333999200000041115524000552334566634000023566723060718596818090848577708000043527803020845437805430843143111143412442220000Processexitedafter3.631secondswithreturnvalue0請(qǐng)按任意鍵繼續(xù)...
2723339994111552Processexitedafter9.225secondswithreturnvalue0請(qǐng)按任意鍵繼續(xù)..?63214443210006321444321000Processexitedafter4.851secondswithreturnvalue0請(qǐng)按任意鍵繼續(xù)...圖2-5程序設(shè)計(jì)題6的運(yùn)行結(jié)果10.n階順轉(zhuǎn)方陣1)解題思路分析如何存入效組:當(dāng)向右輸出時(shí)e不變列增加;向下輸出時(shí)^增加列不兗;向左臉出時(shí)行不變列3;當(dāng)向上輸出時(shí)行題少列增加;并且當(dāng)做完這四個(gè)動(dòng)作后方陣變小,對(duì)應(yīng)循環(huán)終止值要減小按咯式輸出敕組,開決定何時(shí)換行結(jié)束2)代碼#include<stdio.h>intmain(){inti,j,m,base=l,n;inta[10]E1O]={1};scanf&n);for(m=0;m<n/2;m++){〃當(dāng)做完這四個(gè)動(dòng)作后方陣變小,對(duì)應(yīng)循環(huán)終止值要減小for(i=m;i<=n-l-m;i++)〃當(dāng)向右輸出時(shí)行不變列增加a[m][i]=base++;for(j=m+l;j++)〃向下輸出時(shí)行增加列不變a[j][n-l-m]=base++;for(i=n-l-m;i>m;i-)〃向左輸出時(shí)行不變列減少a[n-l-m][i]=base++;for(j=n-l-m;j>m;j-)〃當(dāng)向上輸出時(shí)行減少列增加a[j][m]=base++;if(n%2==l)〃到最后一個(gè)值時(shí)若行數(shù)為奇數(shù)要單獨(dú)輸出a[(n-l)/2][(n-l)/2]=base;Ifor(i=0;i<n;i++){for(j=0;j<n;j++){printf(〃%2d〃,a[i][j]);if(j!=(n-l))printf(z,");
return0;3)測(cè)試(為方便檢驗(yàn),按對(duì)齊格式輸出)456745673458236911oProcessexitedafter0.4249secondswithreturnvalue0請(qǐng)按任意鍵繼續(xù)Processexitedafter0.4249secondswithreturnvalue0請(qǐng)按任意鍵繼續(xù)...123416171819152425201423222113121110Processexitedafter0.5162Processexitedafter0.5162請(qǐng)按任意鍵繼續(xù)..?secondswithreturnvalue0612 3 4 5612 3 4 5 62021 22 23 24 71932 33 34 25 81831 36 35 26 91730 29 28 27 101615 14 13 12 11Processexitedafter0.4998secondswithreturnvalue0請(qǐng)按任意鍵繼續(xù)...圖2-6程序設(shè)計(jì)題10的運(yùn)行結(jié)果11.迷宮問題1)解題思路:開始2)代碼:#include<stdio.h>definephix+moveX[i]>=0ttdefineph2x+moveX[i]<position_xdefineph3y+moveY[i]>=0defineph4y+moveY[i]<position_ydefineph5road[x+moveX[i]][y+moveY[i]]==0defineph6map[x+moveX[i]][y+moveY[i]]==lttdefineph7road[x+moveX[i]][y+moveY[i]]=ldefineph8search(x+moveX[i],y+moveY[i])defineph9road[x+moveX[i]][y+moveY[i]]=0〃宏定義運(yùn)算表達(dá)式intmap[20][20]={};introad[20][20]={};voidsearch(int,int);intmoveX[4]={l,0,0,-1};intmoveY[4]={0,1,-1,0);〃定義在x和y方向的移動(dòng)動(dòng)作,即二者結(jié)合可以進(jìn)行四個(gè)方向的移動(dòng),從而可以搜尋四個(gè)方向的路徑intposition_x,position_y,num=0;〃定義當(dāng)前的位置和路徑序號(hào)intmain(){scanf(z,%d%d,z,&position_x,&position_y);inti,j;for(i=0;i<position_x;i++){for(j=0;j<position_y;j++)scanf&map[i][j]);"/將迷宮圖存入數(shù)組中search(0,0);〃調(diào)用迷宮進(jìn)行查找路徑return0;)voidsearch(intx,inty){inti,j;if(x==position_x-1&&y==position_y-1){〃當(dāng)已經(jīng)查找到迷宮右下角時(shí),輸出已經(jīng)查找到的路徑num++;〃標(biāo)記已經(jīng)找到的路徑序號(hào)printf(級(jí)d\n”,num);for(i=0;i<position_x;i++){for(j=0;j<position_y;j++){//輸出已經(jīng)存儲(chǔ)在road中的路徑printf("%d”,road[i][j]);if(j<position_y-l)printfC");}printf("\n");}return;〃輸出完成后進(jìn)行下一次查找路徑}else{road[0][0]=1;for(i=0;i<4;i++){if(phl&&ph2&&ph3&&ph4&&ph5&&ph6){〃當(dāng)迷宮地圖上下一步是1,即可以走并滿足不與己找到的路徑重復(fù)時(shí)時(shí)繼續(xù)執(zhí)行ph7;〃標(biāo)記自己已經(jīng)走過(guò)的迷宮格為1ph8;〃遞歸進(jìn)行下一步查找ph9;3)測(cè)試:(直接在截圖中展示,為方便觀測(cè),添加了分隔符)10000000001011011110111001101010011100101111011110000000001111000000000100000000010000000001001110000111101111000000000111000000000TOC\o"1-5"\h\z1 0 0 0 0 0 1 1 1 01 0 0 0 0 1 1 0 1 01 0 0 1 1 1 0 0 1 01 1 1 1 0 0 0 0 1 00000000011310000000001 0 0 0 0 1 1 1 1 01 0 0 0 0 1 0 0 1 01 0 0 1 1 1 0 0 1 01 1 1 1 0 0 0 0 1 00000000011Processexitedafter2.896secondswithreturnvalue0請(qǐng)按任意鍵繼續(xù).?.?00000011001011001110001110001000100011Processexitedafter6.095secondswithreturnvalue0請(qǐng)按任意鍵繼續(xù)....圖2-7程序設(shè)計(jì)題11的運(yùn)行結(jié)果4小結(jié)通過(guò)本節(jié)對(duì)數(shù)組的問題的解決,我意識(shí)到了自己對(duì)于算法改進(jìn)方面的不足。在程序調(diào)試中,我一直對(duì)數(shù)組s的內(nèi)容明明沒有被改變,但是在調(diào)試時(shí)卻一直有數(shù)組內(nèi)容被修改的問題感到困惑不解,在對(duì)觀察變量的下標(biāo)范圍進(jìn)行改變后,才意識(shí)到問題所在。在程序修改替換一題中,標(biāo)記數(shù)組法是降低算法時(shí)間復(fù)雜度的重要方法。盡管在處理文本去重的改進(jìn)中較為順利,但是在約瑟夫問題中卻遇到了困難,由于一開始對(duì)約瑟夫問題的算法沒有理解透徹,以致于我在標(biāo)記數(shù)組后的下一步循環(huán)報(bào)數(shù)過(guò)程中處理得不順利。在程序設(shè)計(jì)中,我在位運(yùn)算方面掌握能力的欠缺導(dǎo)致處理二進(jìn)制輸出這一題時(shí)的處理方法不夠高級(jí)。而針對(duì)成績(jī)輸入與查找方面,我認(rèn)為在把相同成績(jī)的人的名字按順序輸出這方面耗費(fèi)了大量的編程時(shí)間。最終,通過(guò)添加了一行代碼才解決了始終無(wú)法交換成績(jī)相同的人的名字的代碼中的漏洞。消除類游戲讓我建立了利用標(biāo)記數(shù)組法解決問題的觀念。在最初寫代碼時(shí),由于需要進(jìn)行行遍歷和列遍歷來(lái)進(jìn)行消除,導(dǎo)致在進(jìn)行行遍歷后列遍歷無(wú)法正常進(jìn)行。因?yàn)榇藭r(shí)原來(lái)的游戲棋盤已經(jīng)被改變。而解決這一問題的有效手段便是另外定義一個(gè)檢查數(shù)組,通過(guò)標(biāo)記對(duì)應(yīng)元素的方法實(shí)現(xiàn)消除功能。N階順轉(zhuǎn)方陣在掌握算法后并不難以解決。而在最后一題一一迷宮問題中,在開始時(shí)我已經(jīng)有了向各個(gè)方向查找,存儲(chǔ)路徑的想法,但是卻忽略了當(dāng)路走不通時(shí)回溯和路徑重復(fù)的問題,導(dǎo)致寫代碼時(shí)總是無(wú)法正確輸出結(jié)果。最后在查找相關(guān)的迷宮問題算法后才得到了解決,同時(shí)又借鑒了其將查找功能封裝為函數(shù)和遞歸的算法??傊谶@次實(shí)踐中,我掌握了標(biāo)記數(shù)組法,空間換時(shí)間等方法,但在遞歸,封裝函數(shù),調(diào)試查找漏洞,確定算法上還尚待提高。3結(jié)構(gòu)與聯(lián)合實(shí)驗(yàn)1表達(dá)式求值的程序驗(yàn)證1)分析表達(dá)式求值過(guò)程:首先,和優(yōu)先級(jí)最高,左結(jié)合,“一”優(yōu)先級(jí)次之,右結(jié)合。同時(shí),先計(jì)算括號(hào)中表達(dá)式。第一問,指針自增后指向結(jié)構(gòu)數(shù)組中的第二個(gè)元素,故(++p)->x=100;第二問,指針自增后指向結(jié)構(gòu)數(shù)組中的第二個(gè)元素,故p->c='B';第三問,指針自增后指向結(jié)構(gòu)數(shù)組中的第二個(gè)元素也即數(shù)組v,而p-〉t是指向了數(shù)組V的第一個(gè)元素,故*p-〉t為X;第四問,指針自增后指向結(jié)構(gòu)數(shù)組中的第二個(gè)元素,而p->t是指向了數(shù)組V的第一個(gè)元素,故*p->t為X;第五問,指針指向了第一個(gè)元素的數(shù)組U的第一個(gè)元素,接著自增指向數(shù)組U中的第二個(gè)元素也就是字符'V';第六問,指針指向第一個(gè)元素中的數(shù)組U的第一個(gè)元素,*p->t的結(jié)果是U,然后自增得到V。2)編程代碼:#include<stdio.h>charu□="UVWXYZ",v口="xyz";structTIintx;charc;char*t;}a[]={{ll,'A',u},{100,'B',v}},*p=a;intmain(void)intflag=0;scanf &flag);if(flag=l)printf (++p)->x);elseif(flag=2)printf(p++,p->c));elseif(flag==3)printf("%c〃,(*p++->t,*p->t));elseif(flag==4)printf(zz%c,,?*(++p)->t);elseif(flag=5)printf*++p->t);elseif(flag==6)printf(,z%cz/,++(*p->t));return0;)3)截圖驗(yàn)證□IC:\Users\2O140\Desktop\Operate\±蜘驗(yàn)\7第七牡振0201222\期期正.exe1100Processexitedafter0.5224secondswithreturnvalue0請(qǐng)按任意鍵繼續(xù)...[3C:\Users\20140\Desktop\Operate\±tn^驗(yàn)\7第七①^120201222\的蜀正.exe3rocessexitedafter0.3654secondswithreturnvalue0請(qǐng)按任意鍵繼續(xù)...□iC:\Users\20140\Desktop\Operate\Jt^l^^\7§5±;;X±Vl20201222\gJy^iiE.exeJKProcessexitedafter0.4984secondswithreturnvalue0請(qǐng)按任意鍵繼續(xù)...[1C:\Users\20140\Desktop\Operate\Jz■驗(yàn)\7第七5ct股0201222\助^ffi.exe4xProcessexitedafter1.08secondswithreturnvalue0請(qǐng)按任意鍵繼續(xù)...dC:\Users\20140\Desktop\OperateVt^j£^\7S5-t^±fl20201222\影蟋正.exe5Processexitedafter0.5008secondswithreturnvalue0請(qǐng)按任意鍵繼續(xù)...3C:\Users\20140\Desktop\OperateUzyU^\7^-b^LtVl20201222\g^^iiE.exe3roeessexitedafter1.336secondswithreturnvalue0請(qǐng)按任意鍵繼續(xù)...2源程序修改替換1)代碼修改與截圖驗(yàn)證:#include<stdio.h>#include<stdlib.h>structs_listIintdata;structs_list*next;);voidcreate_list(structs_list*headp,int*p);〃此處改為voidcreate_list(structs_list**headp,int*p);intmain(void)(structs_list*head=NULL,*p;ints[100];for(inti=0;;i++)(scanf &s[i]);〃此處根據(jù)測(cè)試需求改為輸入數(shù)據(jù)if(s[i]==0)break;)create_list(head,s);〃此處改為createlist(Ahead,s);p=head;while(p)printfp->data);p=p->next;)printf('\n");return0;)voidcreate_list(structs_listCC:\Users\20140\De$lrtop\Operate\±ei5E4ft\7fl|-t;XJteU020136920CC:\Users\20140\De$lrtop\Operate\±ei5E4ft\7fl|-t;XJteU0201369203 6 9 2rocessexitedafter5.564secondsvithreturnvalue0育按任意鍵繼續(xù)...{ 〃此處改為structs_list2)代碼替換(后進(jìn)先出)2)代碼替換(后進(jìn)先出)#include<stdio.h>structs_list*loc_head=NULL,*tail;if(p[0]==0);else{loc_head=(structs_list*)malloc(sizeof(structs_list));loc_head->data=*p++;tail=loc_head;while(*p){tail->next=(structs_list*)malloc(sizeof(structs_list));tail=tail->next;tail->data=*p++;}tail->next=NULL;)*headp=1oc_head;#include<stdlib.h>structs_listtintdata;structs_list*next;);voidcreate_list(structs_list**headp,int*p);intmain(void)(structs_list*head=NULL,*p;ints[100];for(inti=0;;i++){scanf&s[i]);if(s[i]==0)break;)create_list(&
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 快思網(wǎng)幼兒園課件
- 玉溪師范學(xué)院《體操》2021-2022學(xué)年第一學(xué)期期末試卷
- 玉溪師范學(xué)院《社會(huì)統(tǒng)計(jì)學(xué)》2022-2023學(xué)年第一學(xué)期期末試卷
- 玉溪師范學(xué)院《馬克思主義經(jīng)典文獻(xiàn)導(dǎo)讀》2021-2022學(xué)年第一學(xué)期期末試卷
- 投影儀銷售行業(yè)的成本核算-記賬實(shí)操
- 某電商公司薪酬管理制度管理
- 2024年制造業(yè)統(tǒng)一數(shù)據(jù)管理方案-工控機(jī)操作系統(tǒng)備份與恢復(fù)
- 腫瘤患者營(yíng)養(yǎng)教育
- 2024年耐高溫涂料項(xiàng)目成效分析報(bào)告
- 2024年筒式采煤機(jī)項(xiàng)目評(píng)估分析報(bào)告
- 教育研究方法觀察設(shè)計(jì)案例
- LED電子顯示屏購(gòu)銷合同
- (2024年)消防安全主題班會(huì)
- 工程量清單及招標(biāo)控制價(jià)編制服務(wù)采購(gòu)服務(wù)方案
- 供應(yīng)鏈彈性和韌性構(gòu)建理論與方法創(chuàng)新
- 四字詞語(yǔ)大全200000個(gè)
- 導(dǎo)游業(yè)務(wù)復(fù)習(xí)題庫(kù)
- 鑄造安全教育培訓(xùn)課件
- 做情緒的主人拒絕精神內(nèi)耗
- 人事行政年終總結(jié)提升
- 藥學(xué)大學(xué)生職業(yè)規(guī)劃
評(píng)論
0/150
提交評(píng)論