作業要求:https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2360
第十一周------第六次作業
6-1 求1到100的和
本題要求編寫程序,計算表達式 1 + 2 + 3 + ... + 100 的值。
代碼:
#include <stdio.h> int main(void) { int i,sum; sum = 0; for(i=1;i<=100;i++){ sum = sum+i; } printf("sum = %d\n",sum); system("pause"); return 0; }
解題思路:
1、定義兩個整型變量i,sum;
2、判斷循環初值以及循環結束條件;
3、打印輸出sum;
流程圖:
調試及運行:
調試過程未發現錯誤
運行結果正確
第十二周------ 第九次作業
求整數的位數及各位數字之和
對於給定的正整數N,求它的位數及其各位數字之和。
代碼:
#include <stdio.h> int main(void) { int digit,number,sum,count; scanf("%d",&number); count = 0; if(number<0){ number=-number; } do{ digit = number % 10; number = number / 10; count ++; sum=sum+digit; } while(number!=0); printf("%d %d\n",count,sum); return 0; }
解題思路:
1、定義4個整型變量,給其中一個變量number的輸入初值;
2、根據題意設置循環結束條件及運算公式(求整數的各位數字之和則需要使用求余運算);
3、輸出位數count,各位數字之和sum;
流程圖:
調試過程及問題:
正確運行的結果應該是輸出2和7,而實際卻輸出了2和-7;
調試過程如下:
調試之后我發現當number<0時,應先在進入循環之前使用if語句保證number為正數;
正確運行過程及調試如下:
第十三周------第七次作業
7-3 統計學生平均成績與及格人數
本題要求編寫程序,計算學生們的平均成績,並統計及格(成績不低於60分)的人數。題目保證輸入與輸出均在整型范圍內。
代碼:
#include <stdio.h> int main(void) { int N,sum,count,i,grade; double average=0; sum = 0; count = 0; scanf("%d",&N); for(i=1;i<=N;i++){ scanf("%d",&grade); sum = sum+grade; if(grade>=60){ count++;} } if(N>0) printf("average = %.1f\n",sum*1.0/N); else printf("average = %.1f\n",sum*1.0); printf("count = %d\n",count); system("pause"); return 0; }
解題思路:
1、定義解題所需變量;
2、根據題意設置循環結束條件;
3、使用if語句加一個計數器統計及格人數;
4、輸出的average要求是浮點型,而sum和N都是整型,因此最后輸出時需要sum*1.0/N;
流程圖:
調試過程及問題:
第一次運行時沒有考慮到N=0的情況,N=0時N不能作為分母,因此average無法計算出,導致部分正確;
調試過程如下:
調試發現錯誤后,我使用if-else語句把N=0和N>0兩種情況進行討論;
再次進行調試:
運行過程如下:
運行結果都正確;
個人總結:這幾周的主要學習各種各樣的循環語句,這是一個難點(在哪一步設置循環,循環結束的條件是什么,嵌套循環怎么使用等等),但同時也是一個重點,因為在以后的學習中接觸的最多的就是循環,經過這幾周課堂上的學習,我弄懂了for循環,while循環與do-while循環的區別與使用,同時也感受到c語言的精深。
代碼行數及博客字數:
已評論博客鏈接:
https://www.cnblogs.com/chumengGTRlhz/p/9991154.html