一。分支結構7-8.計算個人所得稅
1.實驗代碼
#include<stdio.h> #include<math.h> int main() { float a; scanf("%f", &a); if(a>=0) { if(a<=1600) { a = 0*(a-1600); printf("0.00"); }else if(a>1600 && a<=2500) { a = 0.05*(a-1600); printf("%.2f",a); }else if(a>2500 && a<=3500) { a = 0.1*(a-1600); printf("%.2f",a); }else if(a>3500 && a<=4500) { a = 0.15*(a-1600); printf("%.2f",a); }else if(a>4500) { a = 0.2*(a-1600); printf("%.2f",a); } } return 0; }
2.設計思路
(1)文字描述:
第一步:先定義一個浮點型變量a,a為金錢的數量。
第二步:使用if語句,判斷a在不同區間的稅率。
第三步:a<1600無稅率
a = 0*(a-1600);
printf("0.00");
第四步:輸出結果。
(2)流程圖
3.錯誤提示:
(1):沒有寫出無收入的情況
4.解決方法:將printf("%.2f",a);改為printf("0.00");就對了因為a <= 1600無稅率所以只輸出0就可以了。
二。循環1。7-5 最大公約數和最小公倍數
1.實驗代碼:
#include<stdio.h> #include<math.h> int main() { int M, N; scanf("%d %d",&M, &N); int yushu; yushu = M%N; int x; x= M * N; if(yushu == 0) { printf("%d %d", N, x/N); }else { while(yushu != 0) { M = N; N = yushu; yushu = M%N; } printf("%d %d", N, x/N); } return 0; }
2.設計思路:
(1)文字描述
第一步:先定義正整數M,N,在定義一個余數yushu
第二步:因為最大公約數=兩數之積/最小公倍數,所以只要求出一個,另外一個就可以求出來了。
第三步:有兩整數M和N:M%N得余數yushu
第四步:若yushu=0,則b即為兩數的最大公約數
第五步:若yushu≠0,則M=N,N=yushu,再回去執行
第六步:就可以輸出結果了。
(2)流程圖
3.錯誤提示
(1)格式錯誤
4.解決方法
細心的找出了格式錯的地方,將其改為正確的格式。
三。循環2 7-2 水仙花數
1.實驗代碼
#include<stdio.h> #include<math.h> int main() { int n; scanf("%d", &n); int x = 0; for(x = pow(10,n-1); x<(pow(10,n)); x++) { int b = x; int sum = 0, a = 0,i; for(i = 1; i <=n; i++) { a = b%10; b /= 10; sum += pow(a,n); } if(sum == x) { printf("%d\n",x); }
}
return 0;
}
2.設計思路:
(1)文字描述
第一步:先定義一個變量N
第二步:使用for循環語句,賦值使b=x
第三步:再次使用for循環,判定sum的值
第四步:使用if語句,輸出x的值。
(2)流程圖
3.錯誤提示
4.解決方法:
將雙層循環改為單層循環。
四。總結
1 (1).這幾周學習了分支結構和循環的一些知識,從中了解了float,double的一些用法,明白了if,for循環的用法,會用代碼解決一般性的問題。
(2).再打代碼的過程中遇到了很多問題,如運行超時,格式錯誤,編譯錯誤等等,最后通過上網查閱資料,以及細心的調試代碼將代碼的邏輯問題弄清楚之后,解決了代碼的問題。
2.超鏈接
3.表格
周數 | 代碼行數 |
打代碼所用時間 |
博客字數 | 博客時間 | 涉及的知識點 |
第10周 | 2000 | 12 | 0 | 0 | 分支結構,double,float |
第11周 | 2500 | 14 | 0 | 0 | if語句,for循環 |
第12周 | 2700 | 15 | 0 | 0 | while語句 |
第13周 | 3200 | 18 | 1000 | 6h | 素數,金字塔,函數 |
折線圖: