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

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

    1.PTA实验作业

    1.1 梅森数 (20 分)

    形如2
    ​n
    ​​ −1的素数称为梅森数(Mersenne Number)。例如2
    ​2
    ​​ −1=3、2
    ​3
    ​​ −1=7都是梅森数。1722年,双目失明的瑞士数学大师欧拉证明了2
    ​31
    ​​ −1=2147483647是一个素数,堪称当时世界上“已知最大素数”的一个记录。

    本题要求编写程序,对任一正整数n(n<20),输出所有不超过2
    ​n
    ​​ −1的梅森数。

    输入格式:
    输入在一行中给出正整数n(n<20)。

    输出格式:
    按从小到大的顺序输出所有不超过2
    ​n
    ​​ −1的梅森数,每行一个。如果完全没有,则输出“None”。

    输入样例:
    6
    输出样例:
    3
    7
    31

    1.1.1数据处理

    数据表达:定义了n,m,p,flag,i五个整形变量
    数据处理:include<stdio.h> //头文件
    include<math.h> //该编程中用到了数学
    int main() //函数名
    {
    int n,m,p,flag=0,i; //定义五个整型变量
    scanf("%d",&n);
    if(n1) //没有梅森数
    printf("None"); //输出 None
    for(p=2;p<=n;p++) //进行循环,找出所有2*n-1的结果
    {
    m=pow(2,b)-1; //表示素数
    for(i=2;i<m;i++) //进行循环,循环找出是素数的数
    {
    if(m%i
    0) //找出2到m之间的所有整数i,如果m不能被这里面的任意一个数整除则这个m为梅森数
    {
    flag=1; //能被整除,不是梅森数
    break; //跳出循环
    }

    }
    if(flag==0) //如果flag=0则i不能被m整除,为梅森数
    printf("%d ",m);
    flag=0;
    }
    return 0;
    }

    1.1.3 造测试数据



    1.1.4 PTA提交列表及说明

    Q1:编译错误
    A1:flag后面没有加分号
    Q2:部分正确
    A2:将n作为了第一个for循环的变量,应该重新定义一个变量素数p
    Q3:部分正确
    A3:没有改对
    Q4:部分正确
    A4:不知道为什么2^p-1不行,于是新学了pow表示几的几次幂

    1.2同构数 (10 分)

    一个数恰好出现在它的平方数的右端,这个数就称为同构数。找出1~1000之间的全部同构数。

    输出格式:
    在一行中输出所有满足条件的同构数,每个数输出占6列。没有其它任何附加格式和字符。

    输出样例:
    1 5 6 25 76 376 625

    1.2.1数据处理

    数据表达:定义了s,t俩个整形变量,其中s是1到1000的数字之间的同构数,s是t的平方数,t也就是s的平方
    数据处理include<stdio.h>
    include<math.h> //数学函数的调用
    int main()
    {
    int s, t; //定义s,t
    for(s=1;s<=1000;s++) //对于1~1000的数字逐个计算
    {
    t=pow(s,2); //算出t的值,也就是将s平方
    if((t%10s)||(t%100s)||(t%1000==s)) //对于t各个位数上的数字的判断,即有任何一个位数等于s则满足条件
    {
    printf("%6d",s); //输出有六个空格间断的s
    }
    }
    return 0; //返回主函数:

    1.2.2实验代码截图

    1.2.3造数据测试

    1.2.4 PTA提交列表及说明

    说明:无错误

    1.3输出三角形字符阵列 (15 分)

    本题要求编写程序,输出n行由大写字母A开始构成的三角形字符阵列。

    输入格式:
    输入在一行中给出一个正整数n(1≤n<7)。

    输出格式:
    输出n行由大写字母A开始构成的三角形字符阵列。格式见输出样例,其中每个字母后面都有一个空格。

    输入样例:
    4
    输出样例:
    A B C D
    E F G
    H I
    J

    1.3.1数据处理

    数据表达:定义了n,i,j,count四个整形变量,其中
    数据处理、int main()
    {
    定义字符型变量['A'];
    定义整型变量n。
    输入正整数scanf("%d",&n);
    进入无线循环
    定义整型变量i。
    for (i = n; i > 0; i++) 嵌套for循环语句) 循环找出
    {
    for (j = 0; j < i; j++) 嵌套for循环语句
    {
    输出空格;
    n自减;就是A+1=B了;
    换行
    }
    return 0;
    }

    1.3.2实验代码截图

    1.3.3造数据测试


    1.3.4 PTA提交列表及说明

    Q1:编译错误
    A1:题目说了每个字母后面有一个空格,这一点没有注意到
    Q2:编译错误
    A2:漏了一个逗号

    同学的题目代码

    (num1)

    (num2)

    我的题目代码

    说明比较不同与相同:num1和我的区别在于根本方法不一样了,看了老半天也没有看懂,可能一时半会儿看不懂,简单说就是 定义了整型函数i循环次数,n代表2的幂数
    定义a2的b次方,b做幂数递增,c是计数器,作为2的幂从1开始循环一次加1,将数化成2的次方形式,减少循环次数,其实有些思想也是类似
    num2和我的代码思路基本一致,只不过他用了一个count++和if(count=0)来判断是否输出,我用的是一个flag

    学习总结

    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用处 继续学习之前没懂的地方

    3.2 累积代码行和博客字数

    3.3 学习内容总结和感悟

    3.3.1 学习内容总结

    3.3.2 学习体会

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

  • 相关阅读:
    Cisco ASR1002-X告警处理
    WLC5520无法通过无线客户端进行网管故障解决
    一键分享mob,方法二
    Java中堆内存和栈内存详解
    linux.linuxidc.com
    android中shape的使用(android:angle小解)
    Activity的Launch mode详解 :standard(默认), singleTop, singleTask和 singleInstance
    Android studio个人常用快捷键
    Android 公告新闻消息资讯之垂直滚动效果
    数据库设计相关
  • 原文地址:https://www.cnblogs.com/liwenweiboy/p/11960372.html
Copyright © 2011-2022 走看看