西農(nóng)C語言第三次實(shí)習(xí)作業(yè)..._第1頁
西農(nóng)C語言第三次實(shí)習(xí)作業(yè)..._第2頁
西農(nóng)C語言第三次實(shí)習(xí)作業(yè)..._第3頁
西農(nóng)C語言第三次實(shí)習(xí)作業(yè)..._第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、FH05-01.c#include <stdio.h>void main()int a10,i;a1=1;for(i=2;i<11;i+)ai=ai-1+1;for(i=1;i<11;i+)printf("%5d",ai);if(i%2=0)printf("n");在模仿生兔子程序編此程序時候發(fā)現(xiàn)多次錯誤,而且都關(guān)于遍歷輸出的錯誤,首先是沒把控制輸出語句用于遍歷輸出導(dǎo)致輸出數(shù)據(jù)錯誤,再次是判斷換行的控制輸出沒有放在遍歷輸出當(dāng)中,導(dǎo)致輸出時候不能根據(jù)預(yù)想結(jié)果一樣的輸出,所以當(dāng)遍歷輸出時需要將全部與控制有關(guān)的輸出控制語句全部放在遍歷輸

2、出的花括弧中。在第一次i的循環(huán)賦值當(dāng)中計算式中i的初值要比起始定義時候要大1以免輸出時候造成結(jié)果紊亂。運(yùn)行程序結(jié)果與預(yù)想完全相同輸出,但是不理解的是為什么會出現(xiàn)程序運(yùn)行錯誤終止提示呢?而且我重新建立VC工作區(qū)域也出現(xiàn)了同樣的結(jié)果。比較交換法:#define JH(a,b) t=a,a=b,b=tvoid main()int a11,i,j,t;printf("交換前的數(shù)據(jù):");for(i=1;i<11;i+)ai=rand()%100;printf("%5d",ai);printf("n交換后的順序:");for(i=1;i&

3、lt;10;i+)for(j=i+1;j<11;j+)if(ai<aj) JH(ai,aj);for(i=1;i<11;i+)printf("%5d",ai);printf("n");此程序我編制了好幾次,花了大量時間研究交換的內(nèi)外循環(huán),可是老是出現(xiàn)最終各數(shù)字位置未能交換,對此,很費(fèi)解。參照老師您所寫的程序與自己所寫程序并無差別,可就是結(jié)果運(yùn)行不正確,調(diào)試多次后,發(fā)現(xiàn)在書寫for(i=1;i<10;i+)for(j=i+1;j<11;j+)這兩個程序段時,第二行的就j的賦值必須寫成j=i+1,而不能寫成就j=2。這之間的變化

4、就是數(shù)值最終是否能交換的原因。剛開始我的理解是外循環(huán)for(i=1;i<10;i+)只需要循環(huán)(比較)9次,內(nèi)循環(huán)for(j=2;j<11;j+)從第二項(xiàng)開始也循環(huán)(比較)9次。且每次循環(huán)I,J都會增加1,所以比較應(yīng)該能完成才對的。而調(diào)試后的程序,j=i+1處的格式,我對其意思就相對模糊了。難道內(nèi)循環(huán)j的值的變化必須與i有關(guān),若無i則j的值就不會變化嗎?5、選擇法排序#include <stdio.h>#define JH(x,y) t=x,x=y,y=tvoid main()int a10,t,i,j,k;printf("before:");for

5、(i=0;i<10;i+)ai=rand()%100;printf("%5d",ai);printf("n after:");for(i=0;i<9;i+)k=i;for(j=i+1;j<10;j+)if(ak<aj)k=j;JH(ai,ak);for(i=0;i<10;i+)printf("%5d",ai);printf("n");在閱讀后選擇法排序后,根據(jù)自己的理解獨(dú)立編寫程序,寫出的程序中有幾處不同,if(ai<aj)應(yīng)該為if(ak<aj),JH(ai,aj)不能包

6、括在內(nèi)循環(huán)中,否則交換會出現(xiàn)錯誤。冒泡法排序:#include<stdio.h>#define JH(a,b) t=a,a=b,b=t#define N 10void main()int i,j,aN,t;printf("輸入數(shù)據(jù):");for(i=0;i<N;i+)scanf("%d",&ai);for(i=0;i<N-1;i+)for(j=0;j<N-i-1;j+)if(aj>aj+1)JH(aj,aj+1);printf("輸出結(jié)果:");for(i=0;i<N;i+)printf("%-4d",ai);對于冒泡法,第一個for循環(huán)倒是很好理解,就是遍歷輸入,而且定義宏中有規(guī)定是10個數(shù)字,所以鍵盤輸入10個數(shù)字即可。而下面的兩個for循環(huán)似乎就有點(diǎn)難以完全掌握了,第二個for循環(huán)應(yīng)該是控制外循環(huán),將比較進(jìn)行N-1次,而內(nèi)循環(huán)就讓我更費(fèi)解了。再者,比較交換時候用aj與aj+1比較,而不是用ai與aj比較,我的理解是應(yīng)該與前面的內(nèi)循環(huán)for(j=0;j

溫馨提示

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

最新文檔

評論

0/150

提交評論