首页 > 技术文章 > 第一次作业-改

huanshang 2018-11-30 20:05 原文

一,
二、PTA作业
- 分支结构中题目7-5 计算分段函数(2)
- 实验代码:

                 #include <stdio.h>
                 #include <math.h>
                  int main()
                  {
	                double x,result;
	                scanf("%lf",&x);
	                if(x >= 0)
	                {
		            result = sqrt(x);
	                }else 
	                {	
		            result= pow((x + 1),2) + 2 * x + (1 / x);
	                }	
	                printf("f(%.2f) = %.2lf",x,result);
	                return 0;
                   }
                   
       - 设计思路:
                - 文字描述
                第一步:构建基本框架
                第二步:定义变量
                第三步:编写**if语句**并将条件注明
                第四步:输出
                -流程图


- 问题及解决办法
- 问题:
1. 使用scanf时忘记加入&符号
2.对输出的变量意义没有明确(如: 我在一开始没有定义result变量, 而是直接编写算式进行运算,在输出时也是用算式取代变量)
- 解决办法:
1.在 scanf("",); 中重复检查 & 的使用
2.明确输出变量result,通过DEV-C++的编译,确认无误后再进行输出
- 错误截图:

- 循环1中题目7-5 最大公约数和最小公倍数
- 实验代码:

                #include<stdio.h>
                int main()
                {
	            int i,N,M,x;
	            scanf("%d%d",&M,&N);
	            if(N<=1000&&M<=1000)
	            {
	                for(x=N;x>0;x--)
	                if(M%x==0&&N%x==0)
	                {
		            break;
	                }
	                printf("%d",x);
	                for(i=M;i>0;i++)
	                if(i%M==0&&i%N==0)
	                {
		            break;
	                }
	                printf(" %d",i);
	             }
	            return 0;	
                }

- 设计思路:
             - 文字描述:
             第一步:定义函数,确定输入函数的范围
             第二步:在数学公式的基础上编写判断的代码
             第三步:利用for循环和if判断语句计算
             第四步:输出变量
             - 流程图:

             -问题及解决办法:
                -  问题:
                            1.从公式转换成代码的逻辑出现问题
                            2.for循环和if语句的终止节点判断失误
                - 办法:
                            1.用草纸逐步书写代码,发现有逻辑失误的地方进行改正
                            2.通过梳理代码检查停止节点
             - 错误截图:

   - 循环2中题目7-3 求整数的位数及各位数字之和
     - 实验代码:
                        ```
                        #include<stdio.h>
                        #include<math.h>
                        int main()
                        {
                        int n,x,count,z,q=0,i,t,y;
                        scanf("%d",&n);
                        x=n;
                        for(count=0;x!=0;count++)
                        {
                          x=x/10;
                        }
                        printf("%d",count);
                        z=n;
                        t=n;
                        for(i=count;i>=0;i--)
                        {
 	                    y=pow((10),i);
  	                    z=z/y;
  	                    q=q+z;
  	                    z=t-z*y;
  	                    t=z;
	                        }
                        printf(" %d",q);
                        return 0;
                        }
                        ```
     - 设计思路:
       - 文字描述:
          第一步:定义函数
          第二步:通过for循环逐步分离各个位数,并得到整数的位数
          第三步:将各个数加在一起
       - 流程图:

       - 问题及解决办法
        - 问题:
                    1.求位数是没有想到正确办法
        - 办法:
                    2.通过设置一个计数器和for循环计算位数
       - 错误截图:

三、总结和学习进度条:
- 1.总结这几周所学内容、遇到的问题以及解决方法。
- 所学内容:这几周学习了分支结构、循环体(if语句,for循环,do while循环)、函数的编写等知识点
- 遇到的问题:1)使用scanf时忘记“取地址符&”
2)判断循环体时的逻辑时常发生错误
3)函数的定义出现错误
- 解决方法:
1)对于第一点通过增加每日的代码练习量解决
2)对于第二点和第三点问题通过多想或先在草纸上书写关键的循环解决问题
- 2.我点评的三位同学:
[陈润豪] (https://www.cnblogs.com/w201412/p/10028793.html/陈润豪)
[李锐] (https://www.cnblogs.com/nana963937050/p/miyiyangdezuoye.html/李锐)
[陈斌] (https://www.cnblogs.com/466682156cb/p/9776264.html/陈斌)
- 3.代码行数和时间、博客字数和时间:
- 表格:

- 折线图:

- 涉及知识点:
1.分支结构的if语句
2.循环语句,尤其是for语句判断终止节点的判断
3.函数的定义与调用

推荐阅读