C语言I博客作业10

这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 C语言I作业10
我在这个课程的目标是 希望能够在学完后能够自己做出一个C语言的小游戏
这个作业在那个具体方面帮助我实现目标 循环结构
参考文献 C语言程序设计

1.PTA实验作业(20分/题)

1.1(7-8) 输出三角形字符阵列 (15 )

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

输入格式:

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

输出格式:

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

输入样例:

4

输出样例:

A B C D 
E F G 
H I 
J 

1.1.1数据处理

  • 数据表达:此题我定义了两个整型变量n, i;n是输入的行数;i是对于下一行的列数进行递减处理;此外我还定义了一个char类型的字符型变量op;代表输入的字符;

  • 数据处理:

    begin
    定义变量n,i,op;
    op←@;
    while(n等于0)
    {
    	i←n;
    	while(i等于0)
    	{
    		输出字符;
    		op+1;
    		如果(i等于0)
    		{
    			换行;
    		}
    	}
    	n自减;
    }
    end
    

1.1.2实验代码截图

1.1.3 造测试数据

输入 输出 说明
4 同示例
5 5行
6 6行

1.1.4 PTA提交列表及说明

说明:此题难度系数不高,只要注意字符型变量的初始化就好了

1.2(7-3) 梅森数 (20 分)

形如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, num, count;其中n为输入值,是2的次方数;num是形如2n−1的数;count作为计数器,对数据中的梅森数进行计数

  • 数据处理:

    begin
    声明fact函数;
    定义变量n, num, count;
    count←0;
    for(定义i并i←0;i小于等于n;i自增)
    {
    	num←pow(2, i) - 1;
    	如果(num是梅森数)
    	{
    		输出num并对count进行累加;
    	}
    }
    如果没有梅森数
    {
    	输出None;
    }
    
    fact函数
    {
    	判断num是否为素数;
    }
    end
    

1.2.2实验代码截图

1.2.3 造测试数据

输入 输出 说明
6 同示例
7 n=7
1 n=1

1.2.4 PTA提交列表及说明

说明:此题主要是判断形如2n−1的数num为素数;对于判断素数之前我们的作业已经写过了

1.3(7-3) 同构数 (10 )

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

输出格式:

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

输出样例:

     1     5     6    25    76   376   625

1.3.1数据处理

  • 数据表达:此题我定义了四个整型变量num, a, b, x;其中num确定是否跳出循环;x用作记录输入数的位数;a为输入数的平方数;b为10的x次方;

  • 数据处理:

    begin
    for(i从1开始到1000结束)
    {
    	定义num, a, b, x;
      x←0;
    	num←i;
    	while(num等与0)
    	{
    		num减少右边的一位数;
    		记录num的位数;
    	}
    	a为i的平方数;
    	b为10的x次方;
    	如果i恰好出现在它的平方数的右端
    	{
    		输出i并且i占6列;
    	}
    }
    end
    

1.3.2实验代码截图

1.3.3 造测试数据

输入 输出 说明
1 5 6 25 76 376 625 同示例

1.3.4 PTA提交列表及说明

编译错误:我直接在if的判断条件中用的是i==pow(i, 2)%pow(10, x);结果报错说%两边不能用double类型的值;刚开始我是懵的,百度后知道pow函数会将int类型的数升级成double类型的值;后来我是将%两边的只拆开处理的

2.代码互评

同学1代码:

同学2代码:

我的代码:

不同点:

同学一:他的i的平方数的用函数求得的,我是直接在主函数中用式子表示的,而且他的b时for循环不断累乘计算的,我是直接在之前就判断了输入数的位数,后用pow函数计算b的值;

同学二:他的同构数判断是在函数中进行的,他用了一个if(result%10x||result%100x||result%1000==x)判断确定输入的数是不是同构数;

3.学习总结

3.1 学习进度条

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第六周 20小时 372 if-else语句和数学函数 暂无
第七周 10小时 226 分支结构 暂无
第八周 12小时 110 for循环结构 暂无
第九周 16小时 200 函数的声明,定义和调用 暂无
第十周 20小时 323 分支结构,字符型数据类型,ASCII码,逻辑运算符 对于字符型数据类型的运用还是不熟练,需要多加练习
第十一周 18小时 788 分支结构,switch语句,简单的数组的使用 对于数组的了解还是不够,下周还是要多加学习
第十二周 22小时 346 循环结构,while循环和do-while循环 数组和结构体的知识有待加强
第十三周 20小时 463 熟悉break、continue的使用;熟悉使用循环的嵌套解决问题。 最近自学的进度有点落下来了,有必要调整下自己的时间安排
第十四周 23小时 564 学了一点最基础的Linux系统的命令行操作,会查看日历,当前日期等操作 对于C语言指针方面有点懵

3.2 累积代码行和博客字数

3.3学习内容总结和感悟

3.3.1 学习内容总结

3.3.2 学习体会

这周开始学习了Linux系统的命令行cal,date,cd,ls等最基础的几个操作;同时也还在学习python,但是相对其他的大佬我的进度还是有点慢了

原文地址:https://www.cnblogs.com/just-like-this/p/11954055.html