實驗 數組答案_第1頁
實驗 數組答案_第2頁
實驗 數組答案_第3頁
實驗 數組答案_第4頁
實驗 數組答案_第5頁
已閱讀5頁,還剩10頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、實驗四 數組實驗課程名:高級語言程序設計4 數組專業班級:學號:姓名:實驗時間:2016年4月27日實驗地點:K4指導教師:一、實驗目的及要求1. 掌握一維數組和二維數組的定義、賦值和輸入輸出的方法;2. 掌握字符數組和字符串函數的使用;3. 掌握與數組有關的算法(特別是排序算法)。 二、實驗任務:(一)(1)程序代碼:#include #define N 10void main( ) int i,aN;float av=0;for(i=0;iN;i+) scanf(%d,&ai); for(i=0;iN;i+) printf(%d,ai); printf( ); if(i%3=0) prin

2、tf(n); for(i=0;i!=N;i+) av+=ai; printf(av=%fn,av/10); (2)運行結果:(3)結果分析:當i能被3整除時,就換一次行。(二)實驗任務2(1)程序代碼:#include void main( )int i,a5,sum=0; for(i=0;i=4;i+) scanf(%d,&ai); for(i=0;i=4;i+) sum+=ai; printf(sum=%dn,sum);(2)程序運行結果:(3)程序分析:使用for循環依次輸入5個數,并使5個數相加。(三)實驗任務3(1)程序代碼:#include int main( )int i,j,r

3、ow=0,colum=0,max; int a34 = 1,2,3,4, 9,8,7,6, -10,10,-5,2; max=a00; for(i=0;i=2;i+) for (j=0;jmax)max=aij; row=i; colum=j;printf( Max=%d, Row=%d, Colum=%dn, max, row, colum); return 0;(2)程序運行結果:(3)程序分析:分別將這12個元素同max相比較,當某個元素的值大于max時,則將此元素的值賦值給max,最后輸出max及最大值的下標。 (四)實驗任務 4 (1)程序代碼:#include void main(

4、 ) int i, x, a10=1,2,3,4,5,6,7,8,9,10; scanf(%d,&x); /*輸入x變量的值 */ for ( i=0; i10; i+ ) printf(%4d,ai); printf(n); for(i=0;i10;i+) /* 循環查找與x相等的元素 */ if ( x=ai ) printf(%dn,i); /* 輸出查找結論 ,輸出下標值 */ else printf(Not found %dn,x); (2)運行結果: (3)程序分析:通過for循環查找與x相等地元素。(五)實驗任務 5 (1)程序代碼:# include#define N 11in

5、t main() int i,j,aN,t,n=10,c,k; printf(輸入10個整數:); for(i=0;in;i+) scanf(%d,&ai); /輸入10個整數/ printf(n); for(j=0;j9;j+) for(i=0;i9-j;i+) if(aiai+1) t=ai;ai=ai+1;ai+1=t; /比較10個數的大小/ printf(由大到小排序為:n); for(i=0;i10;i+) printf(%d ,ai); /從大到小依次輸出者10個數/printf(n);printf(請輸入你想插入的一個整數:n);scanf(%d,&c);n=n+1;for(i

6、=0;i=ai) for(j=n-1;ji;j-) aj=aj-1; ai=c; printf(插入后的數組為:n); for(k=0;kn;k+) printf(%d ,ak); printf(n); return 0; (2)運行結果: (3)程序分析:使用起泡算法將這10個數由大到小的順序排列出來,后使用for循環語句把插入元素后的數組由大到小的順序排列。(六)實驗任務6 (1)程序代碼:#includeint main() int a10; int i,k; printf(請輸入10個整數:); for(i=0;i10;i+)scanf(%d,&ai); k=0; for(i=1;i1

7、0;i+) if(akai) k=i; for(i=k;i9;i+) ai=ai+1; for(i=0;i9;i+) printf(%d ,ai); printf(n); (2)運行結果: (3)程序分析:該程序先將輸入的10個數有小到大的順序列出來,最后輸出前9個數。(七)實驗任務 7 (1)程序代碼:#include void main() float x1000, sum=0.0, ave, a; int n=0, i; printf (Enter mark : n); scanf(%f, &a); while (a=0.0 & n1000) sum+=a; xn= a ; n+; sc

8、anf(%f, &a); ave= sum/n ; printf (Output : n); printf (ave = %fn, ave); for (i=0; in; i+) if ( xiave ) printf(%fn, xi); (2)運行結果: (3)程序分析:輸入若干個數,以負數為結束標志。使用while選擇語句,求出輸入的整數的平均值。(八)實驗任務 8 (1)程序代碼:#includevoid main()int i,j,a66;for(i=0;i6;i+)ai0=1;aii=1;for(i=2;i6;i+)for(j=1;j=i-1;j+)aij=ai-1j-1+ai-1j

9、;for(i=0;i6;i+)for(j=0;j=i;j+)printf(%d ,aij);printf(n); (2)運行結果: (3)程序分析:這可以看做一個6*6的矩陣,通過使用數組級for循環語句將楊輝三角表示出來。(九)實驗任務 9 (1)程序代碼:#include #include void main() char a10,b10; int c,d,k,ch; scanf(%s,&a); scanf(%s,&b); printf(a=%s,b=%sn,a,b); c=strlen(a); d=strlen(b); if(cd) printf(a=%sn,b); printf(b=%

10、sn,a); else printf(a=%sn,a); printf(b=%sn,b); (2)運行結果: (3)程序分析:使用strlen函數比較兩個字符串的長度。(十)實驗任務 10 (1)程序代碼:#include #include void main( ) char s180, s240; int i = 0, j = 0; printf( n Please input string1:); scanf(%s, s1); printf( n Please input string2:); scanf(%s, s2); while (s1i!= 0 )i+; while (s2j!=

11、0 )s1i+=s2j +; s1i= 0; printf(n New string: %s, s1); (2)運行結果: (3)程序分析:運行程序的時候先輸入country,再輸入side,經過程序的運行,實現了將side連接到country的后面形成新的單詞countryside,即實現了將第二個字符串連接到第一個字符串的后面從而形成一個新的字符串的功能。(十一)實驗任務 11 (1)程序代碼:#include stdio.hvoid main () char str1100,str2100; int i,s; printf(n Input string 1:n);gets(str1);

12、printf(n Input string 2:n);gets(str2); i=0; while(str1i=str2i)&(str1i!= ) i+; s=str1i-str2i; printf(%dn,s); 0020 (2)運行結果: (3)程序分析:先輸入abcdefg,后輸入abceef,讓后求出兩個字符數組中第一個不同元素的ASCII碼之差。(十二)實驗任務 12 (1)程序代碼:#include #include void main() int num26,i; char c; for(i=0;i26;i+) numi=0; while (c=getchar()!=#) /*

13、統計從終端輸入的大寫字母個數*/ if (isupper(c) numc-65+=1; /檢查ch是否為大寫字母/ for (i=0;i26;i+) /* 輸出大寫字母和該字母的個數*/ if (numi) printf(%c:%dn,i+65,numi); (2)運行結果: (3)程序分析:(十三)實驗任務 13 (1)程序代碼:#include#includevoid main() char a50100; /字符數組a50100/ int i=0,max=0,k; printf(請輸入字符串,每次輸入完成后請按一次“Enter”:n); while(gets(ai)&strcmp(ai,

14、stop) /比較兩個字符串/ if(strlen(ai)max) /統計字符數組中字符的個數/ max=strlen(ai);k=i; i+; printf(最長的字符串是:n%sn,ak); (2)運行結果: (3)程序分析:運用while循環及if條件語句,測出每次輸入字符串的長度,并比較他們的大小,最后輸出最長的字符串。(十四)實驗任務 14 (1)程序代碼:#include #include void insert(char *p1,char *p2,char pos)int m,n,i;char temp20;m=strlen(p1);n=strlen(p2);for(i=0;in;i+)if(pos=*(p1+i)strcpy(temp,p1+i+1);*(p1+i+1)=0;strcat(p1,p2);strcat(p1,temp); puts(p1);break;void main()char s120, s220;char pos;printf(Please input s1:);gets(s1);printf(Please input s2:);get

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論