C語言例題與參考答案4_第1頁
C語言例題與參考答案4_第2頁
C語言例題與參考答案4_第3頁
C語言例題與參考答案4_第4頁
C語言例題與參考答案4_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C/C++語言第四次上機作業(yè)參考答案PAGEPAGE5數(shù)組轉(zhuǎn)置在主函數(shù)中定義一個n(1<=n<=6)維方陣,并從鍵盤讀入數(shù)組元素;編寫函數(shù)transpose(a,n)實現(xiàn)數(shù)組a轉(zhuǎn)置;在主函數(shù)中輸出轉(zhuǎn)置后的方陣。例:輸入41234輸出159135678261014910111237111513141516481216#include<stdio.h>#defineN6voidtranspose(inta[][N],intn);voidmain(){ intn,i,j; inta[N][N]; printf("Inputn(n<=6):"); scanf("%d",&n); printf("Inputthearray:\n"); for(i=0;i<n;i++) for(j=0;j<n;j++) scanf("%d",&a[i][j]); printf("Displaythearray:\n"); for(i=0;i<n;i++) { for(j=0;j<n;j++) printf("%-4d",a[i][j]); printf("\n"); } transpose(a,n); printf("Displaythetransposedarray:\n"); for(i=0;i<n;i++) { for(j=0;j<n;j++) printf("%-4d",a[i][j]); printf("\n"); }}voidtranspose(inta[][N],intn){ inti,j,t; for(i=0;i<n;i++) for(j=0;j<i;j++) { t=a[i][j]; a[i][j]=a[j][i]; a[j][i]=t; }}學(xué)生信息編寫4個函數(shù)實現(xiàn)下列功能:(1)函數(shù)input()輸入20個學(xué)生姓名和高考總分;(2)函數(shù)sort()按高考總分從高到低的順序排序,姓名順序也隨之調(diào)整;(3)函數(shù)display()顯示學(xué)生姓名及其高考總分;(4)在主函數(shù)中輸入一個姓名,編寫函數(shù)search()用順序查找方法找出該學(xué)生。若查找成功,在主函數(shù)中顯示該生姓名及其高考總分;否則顯示查找失敗。#include<stdio.h>#include<string.h>#defineN3#defineLEN80voidinput(charname[][LEN],floats[]);voiddisplay(charname[][LEN],floats[]);voidsort(charname[][LEN],floats[]);intsearch(charname[][LEN],chars[]);voidmain(){ intnum; charname[N][LEN],student[LEN]; floatscore[N]; input(name,score); puts("Beforesorting:"); display(name,score); sort(name,score); puts("Aftersorting:"); display(name,score); printf("Inputstudentnameyouwanttosearch:"); fflush(stdin); gets(student); num=search(name,student); if(num==-1) puts("SearchFailure!"); else printf("%s'sscoreis%.2f\n",student,score[num]);}voidinput(charname[][LEN],floats[]){ inti; printf("Inputnameandscore:\n"); for(i=0;i<N;i++) { scanf("%s",name[i]); scanf("%f",&s[i]); }}voiddisplay(charname[][LEN],floats[]){ inti; printf("Displaynameandscore:\n"); for(i=0;i<N;i++) { printf("%-10s",name[i]); printf("%.2f\n",s[i]); }}voidsort(charname[][LEN],floats[]){ inti,j,k; floatt; charstring[LEN]; for(i=0;i<N-1;i++) { k=i; for(j=i+1;j<N;j++) if(s[j]>s[k]) k=j; if(k!=i) { t=s[i];s[i]=s[k];s[k]=t; strcpy(string,name[i]); strcpy(name[i],name[k]); strcpy(name[k],string); } }}intsearch(charname[][LEN],chars[]){ inti; for(i=0;i<N;i++) if(strcmp(name[i],s)==0) returni; return-1;}字符串處理定義兩個C源程序文件:fmain.c和fstring.c。fmain.c中包含主函數(shù),實現(xiàn)字符串處理功能選項和字符串的輸入與結(jié)果的輸出。fstring.c中包含兩個函數(shù)delchar(s,c)和strreverse(s),實現(xiàn)刪除字符和字符串反轉(zhuǎn)功能。delchar(s,c):在主函數(shù)中輸入字符串和要刪除的字符,此函數(shù)將字符串s中出現(xiàn)的所有c字符刪除;再在主函數(shù)中輸出刪除后的字符串。strreverse(s):在主函數(shù)中讀入字符串,此函數(shù)實現(xiàn)將字符串s反轉(zhuǎn);再在主函數(shù)中輸出反轉(zhuǎn)后的字符串。SAMPLEOUTPUT:Reverseastring.Deleteacharacterinastring.Pleaseinputyourchoice:1Enterastring:holidayReversedstringis:yadilohWouldyouliketocontinue?(y/n)YReverseastring.Deleteacharacterinastring.Pleaseinputyourchoice:2Enterastring:oneworld,onedreamEnteracharacteryouwanttodelete:oDeletedstringis:newrld,nedreamWouldyouliketocontinue?(y/n)N/*fmain.c*/#include<stdio.h>#include"e:\temp\fstring.c"#defineN80voidstrreverse(chars[]);voiddelchar(chars[],charc);voidmain(){ intchoice1; charchoice2,c,s[N]; while(1) { printf("1.Reverseastring.\n"); printf("2.Deleteacharacterinastring.\n"); printf("Pleaseinputyourchoice:"); scanf("%d",&choice1); switch(choice1) { case1: printf("Enterastring:"); fflush(stdin); gets(s); strreverse(s); printf("Reversedstringis:"); puts(s); break; case2: printf("Enterastring:"); fflush(stdin); gets(s); printf("Enteracharacteryouwanttodelete:"); fflush(stdin); c=getchar(); delchar(s,c); printf("Deletedstringis:"); puts(s); break; } printf("Wouldyouliketocontinue?(y/n)"); fflush(stdin); choice2=getchar(); if(choice2=='N'||choice2=='n') break; }}/*fstring.c*/#include<string.h>voidstrreverse(chars[]){ inti,j; chart; j=strlen(s); j--; for(i=0;i<j;i++,j--) { t=s[i]; s[i]=s[j]; s[j]=t; }}voiddelchar(chars[],charc){ inti,j; chartemp[80]; for(i=0,j=0;s[i]!='\0';) { if(s[i]!=c) temp[j++]=s[i++]; else i++; } temp[j]='\0'; for(i=0;temp[i]!='\0';i++) s[i]=temp[i]; s[i]='\0';}分別用函數(shù)和帶參數(shù)的宏,從三個數(shù)中找出最大數(shù)。/*函數(shù)方式實現(xiàn)*/#include<stdio.h>intmax(inta,intb,intc);voidmain(){ inta,b,c; printf("Input3integers:\n"); scanf("%d%d%d",&a,&b,&c); printf("Maxof%d,%d,%dis%d\n",a,b,c,max(a,b,c));}intmax(inta,intb,intc){ intt; t=a<b?a:b;

溫馨提示

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

評論

0/150

提交評論