C語言-數組-實驗題目及答案.doc_第1頁
C語言-數組-實驗題目及答案.doc_第2頁
C語言-數組-實驗題目及答案.doc_第3頁
C語言-數組-實驗題目及答案.doc_第4頁
C語言-數組-實驗題目及答案.doc_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

實驗六 數組程序設計【實驗目的】1、 掌握使用一維數組編程方法2、 掌握使用二維數組進行程序設計【實驗內容】一、上機驗證程序,并分析結果要求:讀懂程序,寫出分析結果;上機運行程序,得到運行結果,比較之。1、#include int main() int a =1,2,3,4,5 , i, j, s=0 ; j = 1; for ( i = 4 ; i=0 ; i-) s = s+ ai * j ; j = j * 10 ; printf( s= %d n , s ); return 0;分析結果運行結果二、程序改錯題1.下面程序的功能,是從鍵盤輸入一個數組(數組長度為10),查找數組中正數的個數。源代碼如下,程序中存在錯誤,請將其改正。#include int main() int a(10);/*定義數組*/ int count,i;/* i循環(huán)變量 count 正數個數*/ for(i=0;i=10;i+) /*循環(huán)輸入*/ scanf(%d,ai); count=1; for(i=0;i0)count+; printf(數組中正數有:%d個n,count); return 0;三 編寫程序1 編寫程序要求輸入30個學生的單科成績,輸出高于平均分的成績。#include #define N 30int main() float scoreN,sum=0,aver; int i; for(i=0;i30;i+) scanf(%f,&scorei); sum=sum+scorei; aver=sum/30; printf(平均分為:%.2fn,aver); for(i=0;iaver) printf(%.2f ,scorei); printf(n); return 0;2 編寫程序:假設有13位評委參與評分工作。計算每位歌手最終得分的方法是:去掉一個最高分和一個最低分,然后計算剩余11個分數的平均值,所得結果就是選手的最終得分。#include#define N 13int main() int scoreN,sum=0,i,high,low; for(i=0;iN;i+) printf(請輸入第%d位評委成績:,i+1); scanf(%d,&scorei); sum+=scorei; high=score0; low=score0; for(i=0;iN;i+) if (highscorei) low=scorei; printf(歌手最后得分為:%gn,(float)(sum-high-low)/(N-2);3. 假設給定一個書籍編號的數組(數組大小和數據自己設定),查找某本書是否在此數組中個,如果有,顯示查找成功以及該書在數組中的下標,否則顯示查找失敗。#include#define N 5int main()int aN,i,flag=0,s;printf(請輸入書籍編號:n);for (i=0;iN;i+)scanf(%d,&ai);printf(請輸入需要查找的書籍編號:n);scanf(%d,&s);for (i=0;iN;i+)if(ai=s)flag=1; break; if(flag) printf(查找成功!編號為%d的書籍的位置是%dn,s,i+1);elseprintf(查找失??!請確認書籍編號是否正確!n);return 0;4. 編寫程序驗證冒泡法排序#include int main() int a11,i,j,t; printf(Input 10 numbers:n); for(i=1;i11;i+) scanf(%d,&ai); printf(n); for(i=1;i=9;i+) for(j=1;jaj+1) t=aj; aj=aj+1; aj+1=t; printf(The sorted numbers:n); for(i=1;i11;i+)printf(%d ,ai); return 0;5. 編寫程序驗證選擇法排序方法一:#include int main() int a11,i,j,k,temp; printf(Input 10 numbers:n); for(i=1;i11;i+) scanf(%d,&ai); for(i=1;i10;i+) k=i; for(j=i+1;j11;j+) if(ajak) k=j; if(i!=k) temp=ai; ai=ak; ak=temp; printf(The sorted numbers:n); for(i=1;i11;i+)printf(%d ,ai); return 0;方法二:#include #define NUM 10 /* 參與排序的數據個數 */int main() int dataNUM; /* 存放參與排序的所有整數 */ int i, j, minValue, temp; /* 通過鍵盤輸入待排序的整型數列 */ printf(nEnter %d integers., NUM); for (i=0; iNUM; i+) scanf(%d, &datai); /* 選擇排序 */ for (i=0; iNUM-1; i+) minValue = i;for (j=i+1; jNUM; j+) /* 選擇iNUM-1之間的最小數值 */if (datajdataminValue)minValue = j;if (minValue!=i) /* 交換 */temp = datai;datai = dataminValue;dataminValue = temp; /* 輸出排序后的結果 */ printf(nOrdering list is:n); for (i=0; iNUM; i+) printf(%5d, datai); return 0;6. 編寫程序驗證二分查找#include #define NUM 10int main( ) int valueNUM = 12, 23, 30, 45, 48, 50, 67, 82, 91, 103; /* 非遞減整型數列 */ int low, high, mid, key; printf(nEnter a key:); /* 輸入查找的數值 */ scanf(%d, &key); /* 利用二分查找在有序數列中查找key */ low = 0;high = NUM-1; while (low=high) mid = (low+high)/2;if (valuemid=key)break;if (valuemidkey) low = mid+1;else high = mid-1; /* 輸出查找結果 */ if (low=high) printf(n%d is found at %d., key, mid);/* 確認break出口 */ else printf(n%d is not found., key);/* 確認循環(huán)正常出口 */ return 0;7.將一個數組的值按逆序重新存放,例如,原來順序為:8,10,4,23,1。要求改為:1,23,4,10,8。方法一 #include #define N 10int main() int aN,i,j,temp; for(i=0;iN;i+) scanf(%d,&ai); for(i=0,j=N-1;ij;i+,j-) temp=ai; ai=aj; aj=temp; for(i=0;iN;i+) printf(%d ,ai); printf(n); return 0; 方法二:#include #define N 10int main() int aN,i,temp; for(i=0;iN;i+) scanf(%d,&ai); for(i=0;iN/2;i+) temp=ai; ai=aN-i-1;/*第一個和最后一個交換,第二個和倒數第二個交換,.一直到N/2的時候,也就是數組的一半的時候*/ aN-i-1=temp; for(i=0;iN;i+) printf(%d ,ai); printf(n);return 0;8. 輸入nn階,編程計算其兩條對角線上各元素之和。 方法一:#include #define N 3int main()int aNN,i,j,sum1=0,sum2=0,sum=0;printf(請輸入%d行%d列的矩陣:n,N,N);for (i=0;iN;i+)for(j=0;jN;j+)scanf(%d,&aij);for (i=0;iN;i+)sum1=sum1+aii;sum2=sum2+aiN-1-i;sum=sum1+sum2;if(N%2=1)sum=sum-aN/2N/2;printf(主對角線元素之和為%d;n副對角線元素之和為%d;n主副對角線元素之和為%dn,sum1,sum2,sum);方法二:#include#define N 10int main()int aNN,i,j,n,sum=0;printf(請輸入階乘:);scanf(%d,&n);for(i=0;i=n-1;i+) for(j=0;j=n-1;j+) scanf(%d,&aij); if(i=j|i+j=n-1) sum+=aij; printf(對角線的和為 %dn,sum);選做題P85頁-例4-1:10名候選人參與競選,編寫程序,輸入一組選舉人的投票信息,統(tǒng)計每個候選人的得票數目及選舉結果。P87頁例4-2:編寫程序統(tǒng)計從鍵盤輸入一行文本中每個英文字母出現的頻率。3.模擬擲骰子游戲100次,編程統(tǒng)計并輸出骰子的6個面各自出現的次數。方法一:#include#include#include#define N 100int main()int sN;int a,b,c,d,e,f,i;srand(time(NULL);for(i=0;iN;i+)si=rand()%6+1;a=b=c=d=e=f=0;for(i=0;iN;i+)if(si=1)a+;else if(si=2)b+;else if(si=3)c+;else if(si=4)d+;else if(si=5)e+;else if(si=6)f+;printf( 1點出現的次數為:%dn,a);printf( 2點出現的次數為:%dn,b);printf( 3點出現的次數為:%dn,c);printf( 4點出現的次數為:%dn,d);printf( 5點出現的次數為:%dn,e);printf( 6點出現的次數為:%dn,f);方法二:#include #include #include #define N 100int main() int r6=0;int i;srand(time(NULL);for(i=0;iN;i+)rrand()%6+;for(i=0;i6;i+)printf(%d點:%5d次n,i+1,ri);return 0;4.打印出以下楊輝三角形(要求打印出10行)。 1 11 121 1331 1464

溫馨提示

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

評論

0/150

提交評論