一.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、点评

点评1

点评2

点评3

 

3、请用表格和折线图呈现你这几周的代码行数和时间、博客字数和时间、涉及的知识点

(1)表格

 

 

(2)折线图

 

 posted on 2018-11-28 15:45  刘政,  阅读(126)  评论(3编辑  收藏  举报