zoukankan      html  css  js  c++  java
  • C语言I博客作业11

    这个作业属于那个课程 C语言程序设计I
    这个作业要求在哪里 C语言I博客作业11
    我在这个课程的目标是 复习前面所学的语句和循环,学习有关函数的知识
    这个作业在那个具体方面帮助我实现目标 C语言教材书,老师课堂讲的内容,同学的帮助
    参考文献 C语言程序设计,百度,《C primer plus》,集美大学灵丽老师

    1.PTA实验作业

    1.1统计某类完全平方数 (20分)

    本题要求实现一个函数,判断任一给定整数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数据处理:

    数据表达:定义了一个数组temp[10],整型变量N,i用于循环,定义了n接受N的平方根乘n的平方根,N是输入的整数,定义一个数组temp,初始化为0,用于统计每个数字出现的次数
    数据处理:
    int IsTheNumber ( const int N )
    {
    int n=sqrt(N);
    if(n*n==N)
    { //验证是否为平方数
    int temp[10]={0}; //初始化数组为0,表示每个数字出现的次数
    for(int i=N;i>0;i/=10)
    {
    if(temp[i%10]!=0) //表示出现重复的数字
    return 1;
    else
    temp[i%10]++;
    }
    }
    return 0;
    }

    1.1.2实验代码截图

    1.1.3 造测试数据

    输入数据 输出数据 说明
    105 500 cnt=6 正确
    0 100 cnt=1 正确
    500 1000 cnt=2 正确

    1.1.4 PTA提交列表及说明

    Q1:编译错误
    A1:数组用的不熟练,在定义的时候出了些问题
    Q2:答案正确
    A2:看了下资料

    1.2统计各位数字之和是5的数 (20分)

    本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于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 = 这些整数的和
    进行输出。题目保证0<a≤b≤10000。

    裁判测试程序样例:
    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;
    

    }

    /* 你的代码将被嵌在这里 */
    输入样例:
    104 999
    输出样例:
    104 is counted.
    count = 15, sum = 3720

    1.2.1数据处理:

    数据表达:在int is(int number)函数内,定义了两个整型变量item和sum分别代表输入的数的每一位数字和每一位数字加起来的和。在void count_sum( int a, int b )函数内,定义了三个整型变量i,count,sum分别代表[a,b]之间循环输入的数、满足is函数的数和满足is函数的数的个数。
    数据处理:int is(int number)
    定义整型变量c,d
    定义整数变量sum并赋值为0
    while(number!=0)/number是否等于0/
    c←number%10
    sum←sum+c
    number←number/10
    end while
    if(sum==5) /判断各位数之和是否等于0/
    返回值为1
    else
    返回值为0
    end if-else
    end
    void count_sum( int a, int b )
    定义整型变量i为控制循环
    定义整型count用于记录满足条件数的个数,sum1为满足条件的每一个数累加的和
    for(i=a; i<=b; i++) /在区间a-b中循环寻找各位数字之和是5的数/
    if(is(i))
    count累加
    sum1←sum1+i
    end if
    end for
    输出count = , sum =
    end

    1.2.2实验代码截图

    1.2.3造数据测试

    输入数据 输出数据 说明
    0 103 count = 6, sum = 165 正确
    104 999 104 is counted.count = 15, sum = 3720 题目数据
    50 100 count =1, sum = 50 正确

    1.2.4 PTA提交列表及说明

    说明:Q1:部分正确
    A1:sum==5,漏了一个=,找了我半天。

    同学的题目代码

    (num1)

    (num2)

    我的题目代码

    说明比较不同与相同:
    我们三人都运用了数组的知识,然后这俩位同学的思路比较一致
    而我的代码却和他们差距还是比较大的,明显我的代码要简便的多,主要是因为条件的
    判断方向不同所造成的,然后补充一下temp[i%10]++的意思,表示数组temp中第i%10个元素
    在执行完本次处理后自动+1,但是要在本次处理没有完成之前是保持原先的值不变的
    例如a[0]++也就是数组中第一个值+1再存放到原位

    学习总结

    3.1 学习进度条

    周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
    9.16~9.22 5h 16 刚开始了解如何编程 编译的单词和字母数字都有哪一些作用,编译整个过程又是如何运行的
    9.23~10.6 28h 32 学会如何运用markdown语法 为什么会这么难
    10.7~10.11 40h 211 学会了编程的数学函数,对PTA也更熟练了 好折磨人
    第4周/10月10~17 两天半 183 掌握并学会使用for循环语句 还有多种循环语句不了解,循环结构和分支结构谁先编
    10.20-10.26 俩天 192 定义和调用函数,以及如何在一个函数中调用另一函数 生成乘方表跟阶乘表这方面的内容还有很多不懂的,觉得完成作业很费力气
    10.27~11.2 两天半 220 如何进行语句的嵌套,对运算符的等级高低有所了解,熟悉多分支结构、字符型数据类型和逻辑运算符 do语句和do-whlie语句搞不清
    11.4~11.10 俩天 256 学会switch语句 很多地方不明白,一俩句话讲不清楚
    11.11~11.17 俩天 273 学会了while循环,并区别do-while和while 学习新的东西,然后对数组有疑惑
    11.18~11.24 俩天 286 学会continue的使用,并且熟练,学数组 对数组还有一点点不懂
    11.27~11.29 一天半 311 新学会pow,flag用处 继续学习之前没懂的地方
    12.2~12.8 一天半 321 数组可以应用了 进行复习,备考期末

    3.2 累积代码行和博客字数

    3.3 学习内容总结和感悟

    3.3.1 学习内容总结

    3.3.2 学习体会

    每次都有新的收获,新的体会,C语言的感觉越来越难,同时也越来越棒,做出PTA的成就感无与伦比,敲代码的贼得劲,中间会遇到很多问题,也会很烦恼,
    但是正确的办法就是勇敢迎接挑战,,这样才能真正的成长起来!!!

  • 相关阅读:
    Swift技术之如何在iOS 8下使用Swift设计一个自定义的输入法 (主要是NSLayoutConstraint 的使用)
    android 旋转手机的时候,如何忽略onCreate再次被系统调用?
    在iOS 8中使用UIAlertController
    09_android入门_采用android-async-http开源项目的GET方式或POST方式实现登陆案例
    一些工具的版本问题 valgrind gdb 以及编译
    C struct __attribute__ ((__packed__))
    C++ class 只允许堆创建/只允许栈创建
    Shell 字符串操作
    存储系统的分类
    ssh 到服务器然后输入中文保存到本地变成乱码
  • 原文地址:https://www.cnblogs.com/liwenweiboy/p/11997197.html
Copyright © 2011-2022 走看看