C語言I博客作業11



這個作業屬於那個課程 C語言程序設計II
這個作業要求在哪里 C語言I作業0011
我在這個課程的目標是 對於學過的內容,可以很熟練的進行編程,而且還可以看懂代碼的每一步代表着什么意思,訓練自己找錯的能力
這個作業在那個具體方面幫助我實現目標 思維導圖可以幫我建好學習框架,PTA的題目讓我鞏固知識點
參考文獻 百度、《C Primer Plus》第六版,C語言程序設計

1.PTA實驗作業

1.1題目名1

本題要求實現兩個函數:一個函數判斷給定正整數的各位數字之和是否等於5;另一個函數統計給定區間內有多少個滿足上述要求的整數,並計算這些整數的和。

1.1.1數據處理

數據表達:第一個函數定義了兩個整型變量:num1,sum,並且給sum賦值為0;第二個函數定義了3個整型變量:count,sum2,i,並且給count、sum賦值為0
數據處理:

int is( int number )
定義num1和sum兩個變量
sum=0;
用do-while循環{
     num1=number%10;
     sum=sum+num1;
     number=number/10;
}終止條件是number等於0
然后用if-else語句判斷{
      if(sum==5)
         return 1;
      else
         return 0;
}

void count_sum( int a, int b )
定義count、sum2、i三個變量
count=0;
sum=0;
用for循環語句,里面包含一個if語句
for(i=a;i<=b;i++){
		if(is(i)){
			count++;
			sum2=sum2+i;
                 }
}
如果滿足第一個函數就進行累加,否則就不執行
最后輸出結果:printf("count = %d, sum = %d",count,sum2);

1.1.2實驗代碼截圖


1.1.3造測試數據

輸入數據 輸出數據 說明
104 999 104 is counted. count = 15, sum = 3720 例題上的數據
5 60 5 is counted. count = 6, sum = 165 隨機輸入的數據進行測試
1000 1999 count = 15, sum = 17220 隨機輸入的數據進行測試
10 30 count = 2, sum = 37 隨機輸入的數據進行測試

1.1.4PTA提交列表及說明


1.運行超時:我開始用的while循環,用DevC++測試發現一直循環,而且根據題目發現要用do-while循環
2-4多種錯誤:改了幾次才知道是第二個函數中間函數出了問題,於是把第二段函數全刪了,重新弄(有過忘記打上計數的代碼、忘記給變量賦值)
5.格式錯誤:在答案輸出的那里等號兩邊要空格

1.2 題目名2

本題要求實現一個函數,判斷任一給定整數N是否滿足條件:它是完全平方數,又至少有兩位數字相同,如144、676等

1.2.1 數據處理

數據表達:定義了i, a[100],b, count,j五個變量,其中a[100]是數組,都是整型變量,給count賦值為0,令i=N、b=sqrt(i)(開根號);
數據處理:

int IsTheNumber(const int N)
定義i, a[100],b, count,j;
count=0;
i = N;
b = sqrt(i);

if (b*b==i)
   while(i>0)
      a[count]=i%10;
      i=i/10;
      for (j = 0; j < count; j++)
	{
		if (a[count] == a[j])
	         return 1;
	}
這里開始判斷是否是完全平方數,中間有判斷是否有兩個數字是一樣的,就是用數組儲存每次計算的結果,然后進行比較是否相等
count++;
然后返回程序

1.2.2 實驗代碼截圖

輸入數據 輸出數據 說明
105 500 cnt = 6 例題上的數據
140 463 cnt = 4 隨機輸入的數據進行測試
501 666 cnt = 0 隨機輸入的數據進行測試
668 999 cnt = 2 隨機輸入的數據進行測試

1.2.4 PTA提交列表及說明


因為要用到數組這個知識點,所以現在Devc++上測試,直達對了才謄到上面來,我來說說思路:這個題目其實想了很久,因為確實不知道怎么下手,后來覺得用數組會更簡單,但因為這個知識點上課還沒有講到,所以不確定能不能用,但是不用數組的話我又想不出,所以最后決定還是用數組,數組可以用來儲存數據,所以每算一次,我就儲存在數組中,然后進行比較,看是否有相同的數,如果有,就返回計數。用數組解決這個問題簡單了很多,我現在還沒有想到不用數組怎么做,如果有知道的話,可以告訴我嗎?

2.代碼互評

2.1同學代碼截圖(計科3班李雙同學)


2.2自己代碼截圖


2.3比較結果

1.我們采用的方法不一樣,她采用了數組的方法,我沒有,我就是用都-while語句來進行計算
2.我們只是計算的方式那里有一點不一樣,其余的判斷和求累積和是差不多的,兩個方法都可以,看自己的習慣吧

2.4同學代碼截圖(計科1班李澤基同學)

2.5自己代碼截圖


2.6比較結果

1.這一題我是做了很久也沒有做出來,問了同學才知道要用宏這個知識點要判斷誤差,這個是同學教我做的,而他沒有用宏這個知識點,這點我很佩服他
2.我相信他一定做了很久,這個代碼我要向他學習,他沒有用我們沒學過的知識點做出來了,我要多向他請教
3.學習總結

3.1 學習進度條(5分)

周/日期 這周所花的時間 代碼行 學到的知識點簡介 目前比較迷惑的問題
第一周(9.19-3.27) 6天 26行 Hello world編程和Markdown語法 現在沒有疑惑
第二周(9.25-10.4) 4天 45行 華氏度與攝氏度的轉換 對於變量的類型還不是很懂
第三周(10.8-10.11) 3天 大約100行左右 計算分段函數和學習if-else語句 對於if-else語句還是不那么熟練
第四周(10.15-10.17) 3天 大約75行左右 for循環語句和指定次數的循環程序設計 關於指定次數的循環程序設計還不是很清楚
第五周(10.22-10.25) 4天 大約110行左右 使用自定義函數來編程和生成乘方表和階乘表 關於自定義函數的編程的細節還是不太懂
第六周(10.29-11.1) 4天 大約120行左右 運用分支結構編程、字符型數據、邏輯運算符 對於邏輯運算符還不是很清楚,有一點點懵
第七周(11.6-11.8) 3天 大約150行左右 運用switch語句來編程 現在感覺沒有什么疑惑點,可能還沒發現
第八周(11.12-11.15) 3天 大約200行左右 進一步學習循環結構,學習了while和do-while語句 目前還沒有發現什么疑惑點
第九周(11.19-11.22) 3天 大約170行左右 學習了break語句和continue語句的用法以及嵌套循環 可能是剛學,在做PTA不是很熟練
第十周(11.26-11.28) 2天 大約185行 對之前學過的循環結構進行了總結 暫時還沒有發現問題
第十一周(12.3-12.5) 3天 大約200行 進一步學習了函數,以及局部變量和全局變量 今天講的比較快,有點懵的感覺,自己還需要時間去消化

3.2 累積代碼行和博客字數(5分)

3.3 學習內容總結和感悟(5分)

3.3.1 學習內容總結





3.3.2 學習體會

本學期的C語言的最后一節新課落下了帷幕,時間真的好快,一下子就要考試了,記得從最開始敲代碼時的崩潰到后面慢慢的習慣,這一個學期還是收獲了很多,雖然中間的路並不平坦(可以說很艱難哈哈),但我還是堅持下來了,並且我也完成了,雖然還是有瑕疵,但我相信自己會慢慢改正的,我也會變得越來越好。本學期雖然結束了,但我們的學習之路還沒有結束,我們這個專業是要不斷學習的,所以不能放松,下周就會有考試,加油啦!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM