第1次作业

  PTA分支结构实验作业

题目一:计算个人所得税。

          本题正确代码:

#include <stdio.h>
int  main()
{
  float a;
scanf("%f",&a);
if(a>=0)
{
 if(a<1600)
{
  printf("0.00");
}
else if(a>1600&&a<=2500)
{
a=(a-1600)*0.05;
printf("%.2f",a);
}
else if(a>2500&&a<=3500)
{
 a=(a-1600)*0.10;
printf("%.2f",a);
}
else if(a>=3500&&a<=4500)
{
 a=(a-1600)*0.15;
printf("%.2f",a);
}
else if(a>4500)
{
 a=(a-1600)*0.20;
printf("%.2f",a);
}
}
return  0;
}

 2.文字描述设计思路(+流程图):

    第一步:   对于程序来说,先做最基本的程序框架,也就是

#include <stdio.h>
int main()
{

   return 0;
}

    第二步:     对于这道题来说,先定义变量,也就是设工资(非负工资)为  a。

   第三步:      因为该题结果需要精确小数点后两位,故用float来定义一个单精度浮点型变量a,用于存放实数。

   第四步:      根据题设,需要用到if-else语句,再根据a的取值范围来运算在不同范围下的关于a的运算式。

   第五步:       写出该题的程序,并在执行该程序,最后输出。

  流程图:

        

 

3.本题调试过程碰到的问题及解决办法

       第一次做题时pta该题列表情况:

         问题:不知道如何灵活运用if-else语句,且&&的意思。

         解决办法:翻找C语言的书,并询问学长有关于if-else的语句知识,找到并做类似的题,上网查询&&的意思,再经过pta提交说明,经过改动,该题代码正确。

 

      题目二:求1到100的和。

      1.  本题正确代码:

#include <stdio.h>
#include  <math.h>
int   main()
{
 int i , sum=0;
 for(i=1;i<=100;i++)
  {
    sum=sum+i;
  }
  printf("sum = %d\n",sum);
  return  0;
}

 

    2.  文字描述设计思路及流程图:

       由于该题是数学问题,需要用到函数之类,sum为各个数的加和。所以

        第一步:先做程序的基本框架,即:

#include <stdio.h>
#include <math.h>
int   main()
{
return  0;
}

        第二步:先定义变量 i , 再用到函数sum,为防止该程序错误,刚开始设sum=0。

       第三步:根据该题可知会用到for循环语句,即:for(表达式1;表达式2;表达式3)

                                                                                           循环体语句

      第四步:因为是从1到100的所有数的加和,所以在for循环语句中,设      表达式1中  i=1,表达式2中   i<=100,表达式3中  i++。

      第五步:根据该题的输出格式 :sum  =   累加和,所以在输出中:

printf("sum  =  %d\n",sum);

 

 

 

 

      第六步:写出该题的程序,并执行该程序,最后在输出。

        该题流程图:

                          

 

 

 本题调试过程碰到问题及解决办法:

   pta该题提交列表情况:

 

      问题:(1)sum值最初没有赋值为0,导致该题结果错误。

                (2)for循环语句没有不够熟练,总出现for(表达式1,表达式2,表达式3),即括号中应该用分号分开,不应该用逗号,导致该程序编译错误。

     解决办法:(1)询问学长知道该错误,并运用Dev-c++,来编译该程序,给sum=0,发现该处错误解决。

                        (2)翻阅C语言程序设计的书,找到该错误,正确for循环语句格式:for(表达式1;表达式2;表达式3),括号中用分号分开,所以在                                                 Dev-c++中重新编写该程序,无错误,编译成功。

 

 

题目三:找出最小值。

  1.本题正确代码:

#include<stdio.h>
int main(void)
{
int n,i,l,min;
scanf("%d",&n);
scanf("%d",&l);
min=l;
for(i=1;i<n;i++){
scanf("%d",&l);
if(min>l)
min=l;
} 
printf("min = %d",min);
return 0;
}

  2.文字描述设计思路及流程图:

          第一步:给min赋值

           第二步:执行for循环语句,输入n个数,当i小于n,输出i代表的l,直到i>n。

          第三步:并判断i的值更小,然后把值给min

          第四步:输出最小值,执行结束

          本题流程图:

         

   3.本题调试过程碰到问题及解决办法:

      pta该题列表提交情况:

   问题:没有给min赋值,导致执行错误

  解决办法:在dev-c++中,改正错误,输入正确,重新给min赋值。

 

 

 

        总结和学习进度条:

      1.总结:从开学到现在,这几周我们先学习了程序框图,对于第一节程序框图,学会了怎样使hello  world!在屏幕上显示。以及怎样定义变量,还有单精度float和双精度double怎样使用,float类型的变量分配4个字节的存储单元,double类型变量分配8个字节的存储单元。也开始对c语言产生浓厚兴趣,接着我们也学习了if-esle语句,循环语句:for循环语句,do  while循环语句,while循环语句。让我开始用这些语句多角度地分析问题,解决问题。

在学习时碰到很多困难,像在课上有时没听懂这道题的程序,下课我就得找同学或者学长询问,也许是我还没深入理解到程序等等。也让我改正了很多编译过程中的错误,比如for循环语句,while循环语句中表达式之间应用分号分来。课下代码训练少,我也得课下多训练代码,并背背一些代码之类的,还有也学会了一些特殊符号的意义&&等,往后我得多多加强,多练习代码,熟练灵活地使用这些代码来解决各个问题。

 

       

         2.点评作业:点评苏欣       苏欣同学,对问题分析的较为深刻,整体来说,给人不一样的感觉

                             点评王文琪      王文琪同学,整体模板整洁美观,分析问题时,用沉稳的心情来对待问题,值得人学习

                             点评梁宇         梁宇同学,善于改正错误,对自己的问题,善于纠正,积极奋进

      3.表格:

      

       4.折线图:

  

    

posted @ 2018-11-30 15:37  LeoLxx  阅读(226)  评论(7编辑  收藏  举报