作業要求 :【https://edu.cnblogs.com/campus/hljkj/CS201801/homework/2359】
第6次作業:7-1 求1到100的和:
1.代碼:
#include<stdio.h> int main() { int i,sum; sum = 0; for(i = 1;i<=100;i++){ sum = sum + i; } printf("sum = %d",sum); return 0; }
2.解題思路:
(1).先定義整型變量i和sum。
(2).再定義sum等於零。
(3).建立一個for循環,循環條件為i小於等於100。
(4).在進入循環時定義i為1,如果i小於等於100則進入循環,若大於100則進入第五步。
(5).每次循環結束后i都加1。
(6).輸出sum,sum等於1到100的和 。
3.流程圖:
4.調試過程:
(1).
(2).
5.本題遇到的問題和解決方法:
(1.)唯一一個問題就是我以為for循環中在不需要時可以不寫條件也可以不寫分號(如圖)
然后在我編譯的過程中就出現了錯誤(如圖)
在我經過了許久的排查之后並沒有解決問題,然后在同學的火眼金睛下發現了這個致命的錯誤。
6.個人總結:
在這兩次的作業中,我發現難度在一點點增高,我所暴露出來的問題也越來越多,就像這道題就是因為這種小問題導致我浪費了很多的時間,所以在以后的學習過程中,一定要杜絕這種可避免的錯誤,提高做題的效率。這樣才能做更多的題,也可以大大的節省時間。如果馬虎這個問題得不到解決,是很致命的。然后在這段時間的學習當中也使我對循環的理解更進了一步。
第9次作業:7-5 奇偶分家:
1.代碼:
#include<stdio.h> int main(){ int a,b,e,c,d,i; a = 0; d = 0; c = 0; scanf("%d",&a); for(i = 1;i<=a;i++){ scanf("%d",&b); c = b % 2; if(c!=0){ d++; } } e = a - d; printf("%d %d",d,e); return 0; }
2.解題思路:
(1).定義整形變量a,b,c,d,e,i。
(2).定義a等於0,d等於0,c等於0。
(3).輸入a。
(4).建立一個for循環,循環的條件為i小於等於a,而且在進入循環時,使i等於1。
(5).進入循環第一步先輸入一個b,然后求出c(c為b除以2的余數),如果c不等於零這表示輸入的b為奇數,反之c等於零則b為偶數。
(6).進入一個if的判斷,如果c不等於0則d加1(d就代表奇數的個數 ),如果c等於零則回到for循環的第一步中,輸入一個b。
(7).在每次循環結束后i都加1
(8).求出e,e等於a減d。e為偶數的個數。
(9).輸出d,e,即輸出奇數和偶數的個數。
3.流程圖
4.調試過程(以三個數分別為12,10,13為例)
(1).
(2).
(3).
(4).
5.本題遇到的問題和解決辦法:
(1).本題遇到第一個的問題是:該如何區分奇偶數。剛開始這個問題確實困擾了我一會,在我一籌莫展的時候回想起了老師課上講的內容,就是關於奇偶數的。然后就想起來了解題的方法。
(2).第二個問題就是循環里面套判斷的方法使用的不熟練,因為是第一次使用,所以很生疏,錯誤也特別多。
6.個人總結:
在這兩次的作業中我發現了循環的重要性,而且也開始運用一些知識上的結合,比如我舉例的這道題,就是運用了for和if來解決這道題的。然后在以后的課堂上一定會認真聽講,老師課上講的東西真的都很有用,一旦錯過一點都會損失很多。然后我也要加強對循環的訓練和使用,老師也是強調過在c程序中循環是很重要的。
第十次作業:7-4 最大公約數和最小公倍數:
1.代碼:
#include<stdio.h> int main(){ int a,b,c,d,i,f = 0; int e,g; scanf("%d %d",&a,&b); for(i = 1;i<=a;i++){ c = a % i; d = b % i; if(c==0&&d==0){ e = i; } } g = a * b / e; printf("%d %d",e,g); return 0; }
2.流程圖:
3.解題思路:
(1).定義整型變量a,b,c,d,e,f,g,i。使i等於1,f等於0.
(2).輸入a,b。
(3).建立for循環,循環的條件為i小於等於a。
(4).進入循環后按照計算式( c = a % i; d = b % i;)求出c,d。這步是為了尋找a,b的約數。
(5).進入判斷,如果c,d都等於零,將i的值賦給e,否則回到循環中繼續運算。這步是為了求出了a,b的最大公約數e。
(6).每次循環結束都將i加1。
(7).通過g = a * b / e,得出g,g為a,b的最小公倍數。這個式子是在已知兩個數的最大公約數時求最小公倍數的數學公式。
(8).輸出最大公約數e,最小公倍數g。
4.調試過程:
(1).
(2).
(3).
(4).
5.本題遇到的問題和解決辦法:
(1).本題遇到的最大的問題就是在求最小公倍數的時候,我並沒有第一個想到我舉例中的那個數學公式,而是以代碼的形式取而代之,我寫了很久,也寫了很多,寫的特別亂,更別說對錯了,就連編譯都是一堆錯誤,然后在我一籌莫展的時候,我室友告訴我說這個其實不用這么復雜,它其實用一個數學公式就可以求出來。
(2).然后再就是一些技術上的問題,在運用循環和判斷的嵌套時總會在大括號的位置上出現問題。
6.個人總結:
在這周的學習中我暴露出來的最大的問題就是數學知識不夠硬,在一些與數學有關的地方總是浪費時間,所以一定要加強數學能力。然后通過這兩周的學習過程中,讓我在循環這一部分有了一定的進步,讓我使用起來更熟練。
統計圖表:
(1).
(2).
【https://www.cnblogs.com/wangxiangbo/p/9948484.html】