作業要求:https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2360
第七次作業 題目 7-3: 統計學生平均成績與及格人數
1.實驗代碼
#include <stdio.h>
int main(void) { int n,count,i; double grade,sum,average; scanf("%d",&n); sum=0; count=0; for(i=1;i<=n;i++){ scanf("%lf",&grade); sum = sum + grade; average = sum / n; if(grade >= 60){ count++; } } printf("average = %.1lf\n",average); printf("count = %d\n",count); return 0; }
2.解題思路:
(1).題目算法:
第一步:定義三個整型變量學生人數n , 及格人數count , i 和三個雙浮點型變量學生分數grade ,n個學生的分數總和 sum ,平均分數 average;
第二步:輸入學生人數 n;給sum賦值為0;給count賦值為0;
第三步:進入循環語句,i=1,輸入學生成績,不斷進行i+1和輸入學生成績的步驟的同時也不斷進行sum=sum+grade和average=sum/n的計算,直至 i>n;
第四步:同時如果輸入的成績大於或等於60,那么count就加一,循環也直至>n;
第五步:輸出平均成績average和及格人數coun
(2).流程圖:
3、調試過程遇到的問題及其解決方法:
首先我是這樣的代碼,於是出現了部分錯誤,如下:
進行調試:
首先輸入0
在進行到一下調試時就不能再進行下一步了;
於是我發現是因為在這里時n=0,無法進行操作,所以我將average=sum/n放在了循環中;
錯誤原因:當沒有學生時,sum=0並且n=0。average沒有值,所以出現錯誤。
改正之后
第8次作業 7-1 求奇數和
#include <stdio.h> int main(void) { int a,sum; scanf("%d",&a); while(a>0){ if(a%2!=0){ sum=sum+a; } scanf("%d",&a); } printf("%d",sum); return 0; }
2.解題思路:
(1).題目算法:
第一步:定義兩個整型變量a,和奇數之和sum;
第二步:輸入一個值a,a>0;
第三步:進入循環語句,如果a%2沒有余數,則a是奇數,然后算奇數之和sum=sum+a,接着輸入a值,直至輸出的a<0;
第四步:輸出sum;
(2).流程圖:
3、調試過程遇到的問題及其解決方法:
首先我是這樣的代碼,出現了大部分的錯誤
進行調試:
我發現在接下來的調試中我的第一次循環沒有a,所以不存在,也不能輸入
並且輸入2一直停留在scanf;
於是我在循環語句前面加了“scanf("%d",&a);”
改正之后
第10次作業 7-1 統計素數並求和
#include <stdio.h> int main(void) { int m,n,i,sum,count,t,a; sum=0; count=0; scanf("%d %d",&m,&n); for(a=m;a<=n;a++){ t=a-1; for(i=2;i<=t;i++){ if(a%i==0)break; } if(i>t&&a!=1){ count++; sum=sum+a; } } printf("%d %d\n",count,sum); return 0; }
2.解題思路:
(1).題目算法:
第一步:定義區間7個整數型變量:最小值m,最大值n,素數的和sum,素數的個數count,i,t以及在區間(m,n)內的a;給sum賦值0;給count賦值0;
第二步:輸入m,n兩個值;
第三步:進入“for”循環,把m賦值給a,當a<=n時t=a-1,進入內循環i=2,i<=t,如果a%i的余數等於0的話跳出內循環,否則繼續內循環直至i>t;當i>t與a不等於1時,count加1,sum加a,a+1;直至a>n結束循環
第四步:輸出素數的個數並且素數的總和;
(2).流程圖:
3、調試過程遇到的問題及其解決方法:
首先我是這樣的代碼:
出現了部分錯誤,看提示時m=n=素數時出錯,於是我進行了調試:
無法進行下去,我發現a還不可以等於1;這樣就能運行下去了;
總結:這幾周我們主要學習了for循環語句的嵌套和學了一些自定義函數的代碼,基本能解決簡單的幾個for語句內外循環嵌套的問題了。
再是區分while與for不同的用法以及在不同的條件下對它們的不同使用。
難點:主要是for語句的嵌套以及子函數的寫法,比如子函數中的return是帶着什么回到主函數的,函數類型要與return變量保持一致,這些在
寫代碼時都要特別的注意。
for語句使用次數多了之后容易搞混淆。
措施:多讀代碼,搞清楚for語句中的內循環
多使用自定義函數解題
點評:https://www.cnblogs.com/mayijing/p/10017399.html
https://www.cnblogs.com/nansu/p/10035866.html