芒果味的

导航

C语言I博客作业10

这个作业属于哪个课程 C语言程序设计II
这个作业要求在哪里 C语言I博客作业10
我在这个课程的目标是 熟悉代码的编程,设计出一个小程序,能够正常运行并且能够拥有一定用户
这个作业在哪个地方具体方面帮助我实现目标 选择合适的算法、合理的循环结构,熟练的编写程序
参考文献 同构数 long函数 abs函数 时间复杂度和空间复杂度

1.PTA实验作业

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代表行,j代表列;用到了字符型变量c,c用来赋值字符
数据处理:伪代码


#include<stdio.h> //头文件
int main()       //函数名
{
    int n,i,j;  //定义三个整型变量
    char c;    //定义字符型变量 c
    c = 'A';   //给变量c赋值A
    scanf("%d", &n);
    for(i=1;i<=n;i++)  //进行行的循环
    {
        for(j=i;j<=n;j++)  //进行列的循环
        {
            printf("%c ", c); //打印字符
            c++;   //字符自增
        }
        printf("\n");  //输出换行
    }
    return 0;
}

1.1.2实验截图代码

1.1.3造测试数据

输入数据 输出数据 说明
4 能形成三角形
3 能形成三角形
5 能形成三角形

1.1.4 PTA提交列表及说明

说明:
Q1:多种错误
A1:编译代码错误,格式错误,改用了字符型变量编写代码

1.2题目名(梅森数)

形如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.2.1数据处理

数据表达:用到了四个整型变量 num用来表示素数,n表示输入值次方,i,j用来循环,count用来计数梅森数
数据处理:伪代码

#include<stdio.h> //头文件
#include<math.h> //该编程中用到了数学
int main()   //函数名
{
    int num,n,i,j,count=0;  //定义四个整型变量
    scanf("%d",&n);
    for(i=2;i<=n;i++)      //进行循环
	{
       num=pow(2,i)-1;     //表示素数
       for(j=2;j<=sqrt(num);j++)   //进行循环
       if(num % j==0) break;     //如果为假,则跳出循环
       if(j>sqrt(num))      //  判断是否为梅森数
	    {
        printf("%d\n",num);  //打印梅森数
        count++;    //梅森数自增
        }
    }
    if(count==0)     //没有梅森数
	printf("None");   //输出 None
return 0;
}

1.2.2实验截图代码

1.2.3造测试数据

输入数据 输出数据 说明
4 梅森数为3,7
5 梅森数为3,7,31
6 梅森数为3,7,31

1.2.4PTA提交列表及说明


说明:Q1:编译错误
A1:代码书写不正确,循环的嵌套没有使用好,处理素数开始直接写的pow(2,i)-1,后来将pow(2,i)-1复制给了num

1.3题目名

一个数恰好出现在它的平方数的右端,这个数就称为同构数。找出1~1000之间的全部同构数。
输出格式:
在一行中输出所有满足条件的同构数,每个数输出占6列。没有其它任何附加格式和字符。
输出样例:

     1     5     6    25    76   376   625

1.3.1数据处理

数据表达:用到了长整型变量a,b,for循环和if语句的嵌套
数据处理:伪代码

#include<stdio.h>   //头文件
int main()     //函数名
{
    long a,b;   //定义两个长整型变量
    for(a=1,b=0;a<1000;a++)   //进行循环
    {
    b=a*a;       //  判断同构数(一个数恰好出现在它的平方数的右端)
    if(b%10==a||b%100==a||b%1000==a)   //找出1~1000中所有的同构数
    printf("%6d",a);   //打印所有的同构数并按照每个数输出占六个空格的形式
    }
   return 0;
}


1.3.2实验截图代码

1.3.3造测试数据

输入数据 输出数据 说明
1 5 6 25 76 376 625

1.3.4 PTA提交列表及说明

说明:Q:编译错误
A:没有注意每个数输出占6列,代码思路也没有弄清晰

2代码互评

1.同学代码截图

2.自己代码截图

说明:1.他是先定义了整型变量最后转换为字符型输出,而我是从一开始就直接定义了字符型变量,并用字符型变量直接赋值
2.我的代码比他的更加简单

3.同学代码截图

4.自己代码截图

说明:1.该同学先写出来当值为1时输出None,然后进行初始输入值为2的循环,而我是初始值赋为2进行循环判断有无梅森数
2.我和他用的的判断方法不同,他是用余数判断,而我的用到了根式判断

3.学习总结

3.1学习进度条

周/日期 这周所花的时间 代码行 学到的知识简介 目前比较迷惑的问题
4/2019.9.21 7个小时 50 编程“hello word” 初次接触对代码很迷惘,不知道表示的是什么意思
5/2019.10.2 8个小时 100 安装gcc编译器,将代码建在自己的文件里 如何安装的程序不明白
7/2019.10.11 10个小时 200 三种表达式,printf流程和scanf流程,if-else语句 scanf流程还是不太明白
8/2019.10.17 20个小时 350 使用for循环语句数的循环程序设计 for循环语句的结构还是有点困惑
9/2019.10.25 25个小时 550 使用while语句循环,自定义函数,参数 自定义函数还是·不太明白
10/2019.11.1 20个小时 700 熟悉多分支结构、字符型数据类型和逻辑运算符 关于字符型的代码还是不太明白
11/2019.11.7 15个小时 1000 熟悉多分支结构switch语句的使用 对swith语句的使用还有一定的困惑
12/2019.11.15 14个小时 1200 熟悉使用while和do-while结构解决问题 对while语句的使用还有一定的疑惑
13/2019.11.21 15个小时 1450 熟悉break、continue的使用,熟悉使用循环的嵌套解决问题 对continue的使用不够熟练,还有很大疑惑
14/2019.11.28 20个小时 1660 选择合适的算法、合理的循环结构,熟练的编写程序 对字符型函数和abs函数还不是太懂

3.2 累积代码行和博客字数

3.3 学习内容总结和感悟

3.3.1 学习内容总结

请用思维导图的形式将到目前为止所学的内容进行整理

3.3.2学习体会

代码越来越难了,这次通过写代码,查阅资料,接触到了新的函数,新的long函数和abs函数还需要自己多花点时间去琢磨琢磨,感觉代码的世界越来越奥妙了,自己还有很多要学的地方;
感觉时间很不够用,最近作业很多,事情也很多,有时候走在路上,脑子里面想的都是代码,走路时候手机看的也是代码,还是感觉自己的悟性还不够,还需要加大自学的力度,抓住空闲的时间

posted on 2019-11-28 01:44  芒果味的  阅读(634)  评论(8编辑  收藏  举报