第一次作业
一。分支结构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 | 素数,金字塔,函数 |
折线图: