• C语言I作业11


    一、本周作业头##

    这个作业属于那个课程 C语言程序设计II
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/10132
    我在这个课程的目标是 熟练掌握好C语言,培养自己的思维能力,同时加快敲代码速度。
    这个作业在那个具体方面帮助我实现目标 可以帮助进行的字符编程的运用
    参考文献 百度百科、CSDN博客、C语言程序设计、浮点数的精度问题

    二、本周作业##

    1.PTA实验作业####

    1.1统计各位数字之和是5的数

    本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,
    并计算这些整数的和。

    函数接口定义:####

    >int is( int number );
    >void count_sum( int a, int b );
    

    函数is判断number的各位数字之和是否等于5,是则返回1,否则返回0
    函数count_sum利用函数is统计给定区间[a, b]内有多少个满足上述要求(即令is返回1)的整数,并计算这些整数的和。最后按照格式

    count = 满足条件的整数个数, sum = 这些整数的和

    输入样例:####

    104 999

    输出样例:####

    104 is counted.
    count = 15, sum = 3720

    裁判测试程序样例:####

    #include <stdio.h>
    
    int is( int number );
    void count_sum( int a, int b );
    
    int main()
    {
        int a, b;
    
        scanf("%d %d", &a, &b);
        if (is(a)) printf("%d is counted.
    ", a);
        if (is(b)) printf("%d is counted.
    ", b);
        count_sum(a, b);
    
        return 0;
    }
    
    /* 你的代码将被嵌在这里 */
    

    1.1.1数据处理####

    数据表达:第一个函数int s=0,t=0,int n;s表示各位数字之和,t表示该数的各位数。n表示输入的整数。第二个函数
    用了 sum=0,count=0,i,int a, int b;sum表示满足上述要求整数的和,count表示满足上述要求整数的个数,i示循环起点,a,b表示区间。
    数据处理:

    int is( int n)
    {
      int s←0,t←0;
      while n!←0
        t←n%10;
        n/←10;
        s+=t;
      }
      if(s←5)
      return 1;
      else
      return 0;
    }
    void count_sum( int a, int b )
    {
      int sum←0,count←0,i;
      for i←a to b
        if(is(i)){
          count++;
          sum+=i;
        }
      }
      printf("count = %d, sum = %d",count,sum);
    }
    

    1.1.2实验代码截图#####

    1.1.3 造测试数据####

    输入数据 输出数据 说明
    a=1,b=1 count = 0, sum = 0 当a,b=1时为最小区间
    a=104,b=999 104 is counted.count = 15, sum = 3720 104属于各位数字之和是否等于5
    a=1,b=10000 count = 56, sum = 77770 当a=1,b=10000时为最大区间

    1.1.4 PTA提交列表及说明####


    编译错误:忘记定义s,t。
    编译错误:if(s==5)写成if(s=5).
    编译错误:没有编写return 0;
    答案错误:少写了一句n=n/10;
    编译错误:忘了定义count,sum;
    编译错误:忘了定义i.

    **1.2统计某类完全平方数 **###

    本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。

    函数接口定义:####

    int IsTheNumber ( const int N );
    其中N是用户传入的参数。如果N满足条件,则该函数必须返回1,否则返回0

    裁判测试程序样例:####

    #include <stdio.h>
    #include <math.h>
    
    int IsTheNumber ( const int N );
    
    int main()
    {
        int n1, n2, i, cnt;
    	
        scanf("%d %d", &n1, &n2);
        cnt = 0;
        for ( i=n1; i<=n2; i++ ) {
            if ( IsTheNumber(i) )
                cnt++;
        }
        printf("cnt = %d
    ", cnt);
    
        return 0;
    }
    
    /* 你的代码将被嵌在这里 */
    

    输入样例:####

    105 500
    

    输出样例:####

    cnt = 6
    

    1.2.1数据处理####

    数据表达:使用了int n,a,i;double m;int num[10]={0};n表示整型N的开根号,m表示浮点型N的开根号;a就是N,i表示循环起点
    num[10]={0}表示数组长度为10底数为0.

    数据处理:

    int IsTheNumber ( const int N )
    {
        int n,a,i;
        double m;
        int num[10]←{0};
        n←sqrt(N);
        m←sqrt(N);
        a←N;
        ifa==m*n
        while a!=0
        
            for i←0 to 9
            
                if a%10==i
                    num[i]+=1;
                    if num[i]==2
                        return 1;
                    
                
                a←a/10;
            
        return 0;
    

    1.2.2实验代码截图#####

    1.2.3 造测试数据####

    输入数据 输出数据 说明
    n1=105,n2=500 cnt = 6 在105 500这个区间之中有6个完全平方数
    n1=1,n2=500 cnt = 7 在1 500这个区间之中有7个完全平方数
    n1=1,n2=1000 cnt = 9 在1 1000这个区间之中有9个完全平方数

    1.2.4 PTA提交列表及说明####


    编译错误:if(a%10==i)写成了if(a%10=i)
    部分正确:a=a/10;放入了for循环内部。

    2.代码互评###

    自己代码 同学代码

    不同点:####

    1.我是通过m,n一个整型一个浮点型来表示N。而该同学直接开根号没分整型和浮点型。
    1.在判定数组中的值是否为2时,我用了for语句去判定,而该同学用的if语句

    自己代码 同学代码

    不同点:####

    1.同样使用的是for循环,但他使用的是通过N=N/10的方式来进行判断。
    2.该同学使用的判断的条件为temp[i%10]!=0而我使用的是num[i]==2.

    3.学习总结###

    3.1 学习进度条

    周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
    10/8-10/12 5h 224 if-else语句和输入输出格式 变量的处理
    10/13-10/18 12h 263 for循环语句,如何计算累加题 不知道什么时候用include<math.h>
    10/19-10/26 15h 334 如何编写自定义函数及更加熟练掌握for循环 自定义函数的使用
    10/26-11/2 14h 355 如何使用逻辑表达式及else-if语句 如何去寻找else-if之间的关系
    11/2-11/8 13h 284 如何使用switch语句 switch语句与for循环同用时的关系
    11/9-11/15 16h 231 使用while语句以及字符型变量的输入输出,#include<string.h>的使用 数组的使用
    11/16-11/22 10h 203 使用循环的嵌套解决问题,以及break,continue语句 在多个循环中如何输出换行
    11/23-11/29 12h 326 通过使用字符型变量进行解题 字符的输入与输出
    11/30-12/6 15h 412 学习了如何使用全局变量和局部变量 实数的负零问题和误差问题

    3.2 累积代码行和博客字数

    3.3 学习内容总结和感悟

    3.3.1 学习内容总结

    3.3.2 学习体会
    这周的作业相对而言有点难度,特别是那个一元二次方程的题;不断的提交修改,提交修改;写的人心态都快要崩了。其中牵扯到了一个没有学习的
    知识点,那就是误差问题;浮点数的精度问题;通过百度最终找到了如何解决的方法。历尽千辛万苦终于写了出来。除此之外,也学习到了全局变量,
    局部变量,静态变量,动态变量;而且又提到了自定义函数,通过两个题又重新的将自定义函数复习了一遍;发现之前还是有很多没有弄懂的问题,除
    了自定义函数,这次还使用到了while语句以及for循环以及if语句。很好地帮助我复习了一遍之前所学习的知识点。

  • 相关阅读:
    如何把新加的分区挂载到指定目录下
    怎样通过U盘安装启动Centos6.8
    Redis 单机安装【一】
    Linux漏洞扫描工具【lynis】
    mysql 主从 重新同步
    Centos 6.8下安装oracle10g数据库、
    监控服务supervisor服务的安装及使用
    制作c#桌面应用程序 安装程序 卸载程序
    Microsoft Visual SourceSafe 2005 服务端安装配置过程以及出现的问题,以及解决方法!
    .NET中的CSV导入导出
  • 原文地址:https://www.cnblogs.com/zengzi123/p/11986593.html
Copyright © 2020-2023  润新知