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

    问题 回答
    这个作业属于哪个课程 C语言程序设计II
    这个作业要求在哪里 作业要求
    我在这个课程的目标是 能够自主开发出一个软件,拥有用户并能够维护程序运行
    这个作业在那个具体方面帮助我实现目标 让我了解更多的数学知识,提高解题,编写程序的能力
    参考文献 百度百科,CSDN技术社区

    PTA实验作业

    1.1输出三角型字符阵列

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

    输入格式:

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

    输出格式:

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

    输入样例:

    4
    

    输出样例:

    A B C D 
    E F G 
    H I 
    J 
    

    1.1.1数据处理

    数据表达:

    使用变量n,i,定义为整型,变量a,定义为字符型,并赋值'A'
    

    数据处理:

    Begin
    输入行数
    while(判断n是否为零)
    {
    	for(用变量i来进行循环)
    	{
    		让字符累加输出
    	}
    	if(判断每一行字符是否大于行数)
    	{
    		是则换行
    	}
    	n--;
    }
    End
    

    1.1.2实验代码贴图

    1.1.3造测试数据

    数据输入 数据输出 说明
    3 A B C
    D E
    F
    只输出三行
    2 A B
    C
    只输出两行

    1.1.4PTA提交列表及说明

    说明:

    解决该题需知道怎样去控制每行字符数
    

    1.2梅森数

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

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

    输入格式:

    输入在一行中给出正整数nn<20)。

    输出格式:

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

    输入样例:

    6
    

    输出样例:

    3
    7
    31
    

    1.2.1数据处理

    数据表达:

    使用了变量n,i,j,sum,rn,flag,都定义为整型
    

    数据处理:

    Begin
    输入n
    计算出输入n的梅森数,并用变量rn表示
    if(n<2)
    {
    	输出None
    }
    for(i用于循环表示几次方)
    {
    	计算每个i的梅森数,并用sum表示
    	for(用j循环来判断sum是否为素数)
    	{
    		用标志flag辅助判断
    		是素数则输出,不是则计算下一个数
    	}
    }
    End
    

    1.2.2实验代码贴图

    1.2.3造测试数据

    数据输入 数据输出 说明
    19 3
    7
    31
    127
    8191
    131071
    524287
    取规定最大整数
    1 None 完全没有

    1.2.4PTA提交列表及说明

    说明:

    部分正确:第一个for语句内的条件应为i<=n
    前期想法是用i来表示数,不断累加,条件为小于所给梅森数,后觉得这样数据太大,会影响运行时间
    

    1.3同构数

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

    输出格式:

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

    输出样例:

         1     5     6    25    76   376   625
    

    1.3.1数据处理

    数据表达:

    使用了i,j,k三个变量,都定义为整形
    

    数据处理:

    k用于判断同构数位数
    Begin
    k=10;
    for(用i来表示同构数进行循环)
    {
    	if(i==k判断i的位数)
    	{
    		相等则进一
    	}
    	j=i*i;表示为同构数的平方
    	if(判断平方数右边是否相等)
    	{
    		是则按格式输出;
    	}
    }
    End
    

    1.3.2实验代码贴图

    1.3.3造测试数据

    数据输入 数据输出 说明
    1 5 6 25 76 376 625 只输出1000以内同构数

    1.3.4PTA提交列表及说明

    说明:

    格式错误:没有理解每个数字占六列的意思,直接在输出数字前加了五个空格
    答案正确:将输出改为printf("%6d");
    

    代码互评

    c1

    c2

    myself

    • 1.我与c1代码不同的是,他定义了一个函数去判断梅森数,然后再将这个数返回到主函数去输出,我认为学会经常去定义函数,会对自己写代码有很好的锻炼作用
    • 2.我与c2代码的不同是,他用于辅助判断的方法与我的不同,他是在循环中去改变用于辅助的变量,然后去判断,而我是在初始给定了辅助变量一个值,然后在循环中去改变,虽然作用都一样,但我比较习惯用自己的

    学习总结

    3.1学习进度条

    这周所花时间 代码行 学到的知识简介 目前比较迷惑的问题
    第五周 8h 56行 常量,变量和数据类型
    第六周 12h 89行 格式化输入函数scanf(),for循环
    第七周 19h 286行 分支结构
    第八周 15h 238行 函数的定义和调用 函数的定义和调用的基本用法
    第九周 10h 173行 while语句,函数的定义和调用强化 被调函数返回值
    第十周 20h 312行 逻辑运算符优先级,定义和访问数组 逻辑表达式的运算
    第十一周 11h 189行 switch语句,ASCⅡ码的了解 进制转换
    第十二周 9h 279行 continue语句,循环结构的嵌套,do-while语句,条件运算符 break语句与continue语句的区别
    第十三周 9h 201行 break语句与continue语句的区别,循环结构嵌套的执行顺序
    第十四周 10h 224行 穷举法的了解,局部变量和全局变量 关于各种新接触的数学知识

    3.2累积代码行和博客字数

    3.3学习内容总结和感悟

    3.3.1学习内容总结

    3.3.2学习体会

    在本周的学习过程中我去阅读了一下其他几位助教的积累情况,我发现他们的代码行已经是我的好多倍了,他们在平时肯定已经做过了很多的练习,所以我也争取不能落后,临近复习时间了,可能后面几周时间会大量的有自己安排,所以自己应该利用这段时间去多做一些题来提升自己。

  • 相关阅读:
    web----VLAN
    安装 Android Studio 2.3.2
    对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈
    2017面向对象程序设计(JAVA)第3周学习指导及要求(2017.9.6-2017.9.12)
    第3周教学课件及实验任务已发布!
    关于字符串比较
    优秀博文推荐
    新手如何学习Java——Java学习路线图
    2017面向对象程序设计(Java)第2周学习指导及要求(2017.8.28-2017.9.3)
    第二周教学课件及实验任务已发布!
  • 原文地址:https://www.cnblogs.com/whl666/p/11950215.html
Copyright © 2011-2022 走看看