




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
-.z.設(shè)計(jì)報(bào)告實(shí)驗(yàn)?zāi)康模和ㄟ^(guò)上機(jī)實(shí)習(xí),熟練掌握循環(huán)語(yǔ)句、選擇語(yǔ)句、指針以及構(gòu)造體的運(yùn)用技巧。在實(shí)習(xí)中通過(guò)實(shí)際操作,編寫(xiě)程序,發(fā)現(xiàn)問(wèn)題,最后解決問(wèn)題,提升對(duì)c語(yǔ)言實(shí)用性的理解,在實(shí)踐中穩(wěn)固各知識(shí)點(diǎn)。C語(yǔ)言是一種計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。它既具有高級(jí)語(yǔ)言的特點(diǎn),又具有匯編語(yǔ)言的特點(diǎn),上機(jī)實(shí)習(xí)可以幫助我們更好地理解這種構(gòu)造式的中級(jí)語(yǔ)言以及其各式各樣的數(shù)據(jù)類型和高效率的運(yùn)算程序,為我們進(jìn)一步學(xué)習(xí)C++打下堅(jiān)實(shí)根底。同時(shí),在實(shí)習(xí)過(guò)程中,通過(guò)互相發(fā)現(xiàn)問(wèn)題,共同解決問(wèn)題,不僅鍛煉了我們的合作能力,而且也讓我們發(fā)現(xiàn)了一些自己的個(gè)人誤區(qū)以及其他人容易犯的錯(cuò)誤,從而在今后的學(xué)習(xí)中更加慎重,到達(dá)事半功倍的效果;通過(guò)詢問(wèn)教師,也讓我們養(yǎng)成了不恥下問(wèn)的好習(xí)慣,這將很有利于以后的學(xué)習(xí)。二,總體設(shè)計(jì):1,學(xué)生成績(jī)排名1,流程圖:I=0I=0再輸入一個(gè)學(xué)生的成績(jī)?cè)佥斎胍粋€(gè)學(xué)生的成績(jī)I<10""假?I<10""冒泡法排序冒泡法排序a[i]a[10-i]I由0變到4進(jìn)展5次循環(huán)輸出a[0]到a[10]shu輸出a[0]到a[9]I由0變到8執(zhí)行9次循環(huán)進(jìn)展9-I次比擬真a[j]>a[I+I]假a[j]a[j+1]賦值真?a[i]a[10-i]I由0變到4進(jìn)展5次循環(huán)輸出a[0]到a[10]shu輸出a[0]到a[9]I由0變到8執(zhí)行9次循環(huán)進(jìn)展9-I次比擬真a[j]>a[I+I]假a[j]a[j+1]賦值I=0I=0輸出I<11""輸出I<11""假?完畢真?完畢<通過(guò)冒泡法對(duì)數(shù)組進(jìn)展排序><測(cè)試時(shí)由于循環(huán)語(yǔ)句循環(huán)次數(shù)的錯(cuò)誤導(dǎo)致局部數(shù)據(jù)沒(méi)有排序,修改FOR語(yǔ)言中的條件即可調(diào)試成功>2,程序:#include<stdio.h>intmain(){ inta[11],i,j,t,b,c,temp1,temp2,temp3;//定義一個(gè)數(shù)組a[11],用以存放學(xué)生的成績(jī) printf("從鍵盤(pán)輸入10個(gè)學(xué)生成績(jī):\n"); for(i=0;i<10;i++) scanf("%d",&a[i]);//輸入10個(gè)學(xué)生成績(jī) for(i=0;i<9;i++) for(j=0;j<9-i;j++) if(a[j]<a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;}//采用冒泡法,將學(xué)生成績(jī)按照從高到低進(jìn)展排序printf("10個(gè)學(xué)生成績(jī)數(shù)組:\n"); for(i=0;i<10;i++) printf("%5d",a[i]);printf("\n"); printf("再輸入一個(gè)學(xué)生的成績(jī)\n");scanf("%d",&b);//再輸入一個(gè)學(xué)生的成績(jī) c=a[9]; if(b<c)//將此成績(jī)按照排序規(guī)律插入原學(xué)生成績(jī)數(shù)組 a[10]=b; else {for(i=0;i<10;i++) {if(a[i]<b) {temp1=a[i];a[i]=b; for(j=i+1;j<11;j++) {temp2=a[j];a[j]=temp1;temp1=temp2; }break; } } }printf("11個(gè)學(xué)生成績(jī)數(shù)組:\n");//輸入11個(gè)學(xué)生成績(jī)for(i=0;i<11;i++) printf("%5d",a[i]);printf("\n");for(i=0;i<5;i++)//排好序的成績(jī)單進(jìn)展反序存放 { temp3=a[i]; a[i]=a[10-i]; a[10-i]=temp3; }printf("排好序的成績(jī)單進(jìn)展反序存放為:\n");for(i=0;i<11;i++)//輸出反序存放后的學(xué)生成績(jī)數(shù)組 printf("%5d",a[i]);printf("\n");return0;}3,運(yùn)行結(jié)果:2,根據(jù)條件進(jìn)展學(xué)生成績(jī)排名1,流程圖:I=0,i++輸入nSort1sort2I=0,i++輸入nII=0,i++I<10""假?I<10""I<nI<n輸出a[0]到a[9]I由0變到8執(zhí)行9次循環(huán)進(jìn)展9-I次比擬真a[j]>a[I+I]假a[j]a[j+1]賦值真?輸出a[0]到a[9]I由0變到8執(zhí)行9次循環(huán)進(jìn)展9-I次比擬真a[j]>a[I+I]假a[j]a[j+1]賦值賦值賦值I由0變到n-1執(zhí)行n次循環(huán)I由0變到n-1執(zhí)行n次循環(huán)進(jìn)展n-1-I次比擬真a[j]>a[I+I]假a[j]a[j+1]輸出a[0]到a[n-1]輸出a[0]到a[n-1]Style=97賦值I<nI=0,i++輸入nStyle=97賦值I<nI=0,i++輸入nSort3假?SStyle=100假?真?真?I由0變到n-1執(zhí)行n次循環(huán)進(jìn)展n-1-I由0變到n-1執(zhí)行n次循環(huán)進(jìn)展n-1-I次比擬真a[j]<a[I+I]假a[j]a[j+1]I由0變到n-1執(zhí)行n次循環(huán)進(jìn)展n-1-I次比擬真a[j]>a[I+I]假a[j]a[j+1]輸入aord輸入aord輸出a[0]到a[n-1]輸出a[0]到a[n-1]2,程序:#include<stdio.h>voidsort1(inta[10])//定義函數(shù){inti,j,t; printf("輸入10個(gè)學(xué)生成績(jī):\n");for(i=0;i<10;i++) scanf("%d",&a[i]);//輸入n個(gè)學(xué)生成績(jī)for(i=0;i<10;i++)//冒泡法對(duì)n個(gè)數(shù)字排序 for(j=0;j<9-i;j++) if(a[j]<a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;}printf("10個(gè)學(xué)生成績(jī)從高到低排名是:\n");for(i=0;i<10;i++)//輸出結(jié)果 printf("%5d",a[i]); printf("\n");}voidsort2(inta[],intn)//定義函數(shù){ inti,j,t;printf("請(qǐng)輸入學(xué)生個(gè)數(shù)n:\n");scanf("%d",&n); printf("輸入n個(gè)學(xué)生成績(jī):\n");for(i=0;i<n;i++) scanf("%d",&a[i]);for(i=0;i<n;i++)//冒泡法對(duì)n個(gè)數(shù)字排序 for(j=0;j<n-i-1;j++) if(a[j]<a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;} printf("n個(gè)學(xué)生成績(jī)從高到低排名是:\n");for(i=0;i<n;i++)//輸出結(jié)果 printf("%5d",a[i]); printf("\n");}voidsort3(inta[],intn,charstyle){charc;getchar(c);printf("請(qǐng)輸入style類型:aord\n"); style=getchar(); printf("請(qǐng)輸入學(xué)生個(gè)數(shù)n:\n"); scanf("%d",&n); printf("輸入n個(gè)學(xué)生成績(jī):\n");inti,j,t;for(i=0;i<n;i++) scanf("%d",&a[i]); if(style==97) {printf("對(duì)n個(gè)數(shù)字升序排列為:\n"); for(i=0;i<n;i++)//冒泡法對(duì)n個(gè)數(shù)字升序排列 for(j=0;j<n-i-1;j++) if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;} }elseif(style==100) {printf("對(duì)n個(gè)數(shù)字降序排列為:\n"); for(i=0;i<n;i++)//冒泡法對(duì)n個(gè)數(shù)字降序排列 for(j=0;j<n-i-1;j++) if(a[j]<a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;} } printf("n個(gè)學(xué)生成績(jī)排名是:\n");for(i=0;i<n;i++)//輸出結(jié)果 printf("%5d",a[i]); printf("\n");}intmain()//主函數(shù){{printf("sort1:\n");//調(diào)用sort1函數(shù)inta[10]; sort1(a);} {printf("sort2:\n");//調(diào)用sort2函數(shù) inta[30000],n; sort2(a,n);} {printf("sort3:\n");//調(diào)用sort3函數(shù) inta[30000],n; charstyle; sort3(a,n,style);} return0;}<這個(gè)程序中輸入字符時(shí)由于前面的程序的干擾,第一個(gè)輸入字符語(yǔ)句會(huì)直接跳過(guò),所以要另加一個(gè)空白的輸入字符的語(yǔ)言,從而使程序中輸入字符的語(yǔ)句能夠正常運(yùn)行><由于數(shù)組的長(zhǎng)度必須要定義,而且不能用變量定義,鑒于要進(jìn)展比擬的數(shù)據(jù)量n是一個(gè)整形的數(shù),定義數(shù)組為一個(gè)較長(zhǎng)數(shù)組即可>3,運(yùn)行結(jié)果:3,用指針優(yōu)化學(xué)生成績(jī)排名流程圖:Sortcopymain2,程序:#include<stdio.h>#include<string.h>voidsort(int*p)//定義函數(shù)sort{//將成績(jī)數(shù)組按照從高到低進(jìn)展排序,要求用函數(shù)實(shí)現(xiàn) inti,j,t; for(i=0;i<9;i++) for(j=0;j<9-i;j++) if(*(p+j)<*(p+j+1)) {t=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=t;}}voidcopy(char*a,char*b)//定義函數(shù)copy{for(;*a!='\0';a++,b++)//復(fù)制該字符串,用函數(shù)實(shí)現(xiàn) {*b=*a;} *b='\0';}intmain(){ inti,j,t,stu[10],*p;//定義一個(gè)數(shù)組stu[10]存放10個(gè)學(xué)生的成績(jī)p=stu; printf("請(qǐng)輸入10個(gè)數(shù)據(jù):\n"); for(i=0;i<10;i++)//從鍵盤(pán)輸入數(shù)據(jù),用指針實(shí)現(xiàn) scanf("%d",p+i); printf("數(shù)組stu[10]的內(nèi)容為:\n"); for(i=0;i<10;i++)//將數(shù)組stu[10]的內(nèi)容輸出到屏幕上,用指針實(shí)現(xiàn) printf("%5d",*(p+i)); printf("\n"); for(i=0;i<9;i++)//將成績(jī)數(shù)組按照從高到低進(jìn)展排序,用指針實(shí)現(xiàn) for(j=0;j<9-i;j++) if(*(p+j)<*(p+j+1)) {t=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=t;} printf("成績(jī)數(shù)組按照從高到低進(jìn)展排序?yàn)椋篭n");p=stu;for(i=0;i<10;i++) printf("%5d",*(p+i)); printf("\n"); p=stu; sort(p);//調(diào)用函數(shù)sort printf("第三步內(nèi)容放在函數(shù)中實(shí)現(xiàn)為:\n");for(i=0;i<10;i++) printf("%5d",*(p+i)); printf("\n"); printf("采用指針?lè)椒ǎ斎胱址畇tudentscore:\n"); char*a="studentscore"; charb[14]; copy(a,b);//調(diào)用函數(shù)copy printf("%s\n",b); return0;}<指針的傳遞是雙向的,在賦值中有多種方法,比方說(shuō)對(duì)數(shù)組直接賦值,或者直接對(duì)指針變量進(jìn)展賦值><復(fù)制該字符串,用函數(shù)實(shí)現(xiàn)時(shí)是用循環(huán)語(yǔ)句把一個(gè)字符串的每一個(gè)字符賦值給另一個(gè)字符串>運(yùn)行結(jié)果:4,學(xué)生成績(jī)單制作流程圖:RReturn0<構(gòu)造體語(yǔ)言具有簡(jiǎn)潔,方便,模塊化的特點(diǎn),在初始化及輸出過(guò)程中要注意輸入輸出方式><在輸入字符串的時(shí)候,輸入語(yǔ)句中不應(yīng)有&>程序:#include<stdio.h>StructStudent//定義構(gòu)造體 { charnumber[10]; charname[10]; intscore[3 ]; floataverage; }student[10];intmain(){ inti,j,t; for(i=0;i<10;i++)//初始化構(gòu)造體 {printf("\n輸入student%d成績(jī):\n",i+1); printf("number:"); scanf("%s",student[i].number); printf("name:");//存放10個(gè)學(xué)生的**,,三門課的成績(jī) scanf("%s",student[i].name); for(j=0;j<3;j++) {printf("score%d:",j+1); scanf("%d",&student[i].score[j]); } student[i].average=(student[i].score[0]+student[i].score[1]+student[i].score[2])/3.0; printf("average:%f",student[i].average);} printf("\n"); printf("輸出數(shù)學(xué)成績(jī)最高的學(xué)生的**、、以及該門課程的成績(jī):\n");//輸出單門課成績(jī)最高的學(xué)生的**、、以及該門課程的成績(jī) intma*=0,ma*_math=0,ma*_chinese=0,ma*_english=0,ma*_average=0,ma*_i=0; for(i=0;i<10;i++) { if(ma*_math<student[i].score[0]) { ma*_math=student[i].score[0]; ma*_i=i;} }printf("number=%s,name=%s,ma*_math=%d\n",student[ma*_i].number,student[ma*_i].name,student[ma*_i].score[0]);printf("輸出中文成績(jī)最高的學(xué)生的**、、以及該門課程的成績(jī):\n"); for(i=0;i<10;i++) { if(ma*_chinese<student[i].score[1]) { ma*_chinese=student[i].score[1]; ma*_i=i;} }printf("number=%s,name=%s,ma*_chinese=%d\n",student[ma*_i].number,student[ma*_i].name,student[ma*_i].score[1]);printf("輸出中文成績(jī)最高的學(xué)生的**、、以及該門課程的成績(jī):\n"); for(i=0;i<10;i++) { if(ma*_english<student[i].score[2]) { ma*_english=student[i].score[0]; ma*_i=i;} }printf("number=%s,name=%s,ma*_english=%d\n",student[ma*_i].number,student[ma*_i].name,student[ma*_i].score[2]);printf("輸出三門課程的平均分?jǐn)?shù)最高的學(xué)生的**、姓名及其平均分:\n"
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年農(nóng)作物繁育員行業(yè)數(shù)據(jù)分析試題及答案
- 2024年農(nóng)業(yè)植保員考試的攻略與試題解析
- 2024年體育經(jīng)紀(jì)人考試的重點(diǎn)難點(diǎn)試題及答案
- 2024年體育經(jīng)紀(jì)人考試的勝出之道試題及答案
- 2024年體育經(jīng)紀(jì)人考試新鮮出爐的試題及答案
- 證券投資組合的動(dòng)態(tài)調(diào)整技巧在2025年考試中的運(yùn)用試題及答案
- 農(nóng)業(yè)植保員考試2024年實(shí)戰(zhàn)演練與試題解析
- 深度剖析2024年模具設(shè)計(jì)師資格考試的特點(diǎn)試題及答案
- 游泳救生員救生常識(shí)能力評(píng)估試題及答案
- 2024年足球裁判員應(yīng)知的法規(guī)及試題與答案
- 給甲方發(fā)工程報(bào)告范文
- 智能機(jī)器人配送行業(yè)現(xiàn)狀分析及未來(lái)三至五年行業(yè)發(fā)展報(bào)告
- 2024年下半年山東濰坊市再擔(dān)保集團(tuán)股份限公司社會(huì)招聘11人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2021年4月17日江蘇事業(yè)單位考試《綜合知識(shí)和能力素質(zhì)》(管理崗客觀題)
- 計(jì)算與人工智能概論(湖南大學(xué))知到智慧樹(shù)章節(jié)答案
- 小學(xué)科學(xué)教師資格考試面試試題及答案指導(dǎo)(2025年)
- 五年(2020-2024)高考語(yǔ)文真題分類匯編專題05 名著閱讀(解析版)
- 嫘祖養(yǎng)蠶 課件
- 《吉林省建筑工程計(jì)價(jià)定額》(JLD-JZ-2024)
- 2025年衛(wèi)生專業(yè)技術(shù)資格考試康復(fù)醫(yī)學(xué)(中級(jí)348)專業(yè)實(shí)踐能力試卷與參考答案
- 復(fù)變函數(shù)與積分變換課程教案講義
評(píng)論
0/150
提交評(píng)論