一.pta分支结构中的 7-8 计算个人所得税
1 #include <stdio.h> 2 int main() 3 { 4 double money,y; 5 scanf("%lf",&money); 6 if(money<=1600){ 7 y=0; 8 } 9 if(money>1600&&money<=2500){ 10 y=0.05*(money-1600); 11 } 12 if(money>2500&&money<=3500){ 13 y=0.1*(money-1600); 14 } 15 if(money>3500&&money<=4500){ 16 y=0.15*(money-1600); 17 } 18 if(money>4500){ 19 y=0.2*(money-1600); 20 } 21 printf("%.2f",y); 22 return 0; 23 }
2.设计思路
(1)文字描述
第一步:首先定义两个量 工资和个人所得税
第二步:根据题意判断这是if语句,所以要进行语句的构建
第三步:首先输入非负的工资值(scanf("%lf",&money)
第四步:根据题意和给出的公式,如果工资不超过1600的时候税率是0(0*(工资-1600))
如果工资在1600到2500之间的时候税率为5%(0.05*(工资-1600))
如果工资在2500到3500之间的时候税率为10%(0.1*(工资-1600))
如果工资在3500到4500之间的时候税率为15%(0.15*(工资-1600))
如果工资超过4500的时候税率为20%(0.2(工资-1600))
第五步:在最后因为题意要求输出的时候结果精确到两位小数 printf("%.2f",y)
(2)流程图
3.本题调试过程碰到问题及解决办法
(1)错误截图
(2)解决办法
字母的拼写错误:将inclued更改为include
没有细心读题,题中要求结果精确到两位小数,所以将printf("%lf",y)更改为printf("%.2f",y)
二.pta循环一中的 7-1 统计学生平均成绩与及格人数
1.实验代码
1 #include<stdio.h> 2 int main() 3 { 4 int n,i,a,count=0,sum=0; 5 double average; 6 scanf("%d",&n); 7 if(n==0) 8 { 9 printf("average = 0.0\n"); 10 printf("count = 0"); 11 } 12 else 13 { 14 for(i=0;i<n;i++) 15 { 16 scanf("%d",&a); 17 sum = sum + a; 18 if (a>=60) 19 count++; 20 } 21 average =1.0* sum / n; 22 printf("average = %.1f\n",average); 23 printf("count = %d\n",count); 24 } 25 return 0; 26 }
2.设计思路
(1)文字描述
第一步:输入学生人数n和学生的成绩a
第二步:进行判断,当学生人数为0的时候,及格人数和平均成绩都为0
第三步:如果学生人数不为0,则进入循环,当a>=60的时候,每有一人,则及格人数加1
第四步:平均成绩,每有一人及格,则该成绩进入计算,总成绩除以当前及格人数(平均成绩精确到一位小数)
第五步:输出所得的及格人数和平均成绩
(2)流程图
3.本题调试过程碰到问题及解决办法
(1)错误截图
(2)解决办法
看错题目,误将及格人数也精确到了小数点后一位,将代码printf("count = %.1f\n",count)更改为printf("count = %d\n",count)
三.pta循环二中的 7-1 找出最小值
1.实验代码
1 # include <stdio.h> 2 int main (void) 3 { 4 int n, num; 5 int min, i; 6 scanf("%d", &n); 7 scanf("%d" , &num); 8 min = num; 9 for(i = 1; i < n; i ++) 10 { 11 if(min > num) 12 { 13 min = num; 14 } 15 scanf("%d", &num); 16 } 17 printf("min = %d", min); 18 return 0; 19 }
2.设计思路
(1)文字描述
第一步:首先输入数的数量n,数的数值num
第二步:首先考虑当输入的n和num相等的时候的情况
第三步:当最小值大于输入的值,则最小值为输入的值
第四步:通过各种情况判断,输出最小的值
(2)流程图
3.本题调试过程碰到问题及解决办法
(1)错误截图
(2)解决办法
在min>num的判断中,将min与num的赋值弄反了,将代码中num = min改为min = num、
四、总结和学习进度条
1.总结这几周所学内容、遇到的问题以及解决方法
(1)学习内容
f语句,while语句,do-while语句,for语句,以及函数知识,对c语言有了更加进一步的了解
(2)遇到的问题
对一些循环语句的判断错误和运用不灵活;对于函数方面的知识学习不是很透彻;在pta中的题目有些细节弄得不是很仔细
(3)解决方法
向同学询问,虚心求教;向老师和助教请教;在百度和Mooc中通过视频进行学习
2、点评
3、请用表格和折线图呈现你这几周的代码行数和时间、博客字数和时间、涉及的知识点
(1)表格
(2)折线图