C语言I博客作业10

这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 C语言I博客作业10
我在这个课程的目标是 理解运用现有的C语言知识
这个作业在那个具体方面帮助我实现目标 通过PTA作业和阅读教材并练习
参考文献 《C语言程序设计》

一、PTA作业

1.1输出三角形字符阵列

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

输入格式:

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

输出格式:

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

输入样例:

输出样例:

1.1.1数据处理

数据表达:定义了整型int变量i,N,n,j;以及字符char变量letter;
数据处理:运用for循环嵌套;第一个for循环输出指定的行次数以及第二个for循环相应的字符。
伪代码

int main()
{
    定义整型变量 i,N,n,j;
    定义字符型变量 letter;
    字符型变量初始为letter='A';
    输入整数scanf("%d",&n);
    令N=n;
    for(循环n次)
    {
        for(循环n次)
        {
            printf("%c ",letter);
            letter++;字符跳到下一个
        }
        printf("\n");换行
        n--;每循环一次n要减少一次
    }
    return 0;
}

1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
2 输出2行由大写字母A开始构成的三角形字符阵列。
5 输出5行由大写字母A开始构成的三角形字符阵列。
6 输出6行由大写字母A开始构成的三角形字符阵列。

1.1.4 PTA提交列表及说明


提交列表说明
格式错误:多循环了一次,输出多换行了一格;通过对比输出数据对比出来的。

1.2梅森数

输入格式:

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

输出格式:

输入样例:

输出样例:

1.2.1数据处理

数据表达:定义整型int变量i,j,m,n,mumber;
数据处理:for循环嵌套if语句,再利用break跳出语句的特性将条件罗列求出梅森数。
伪代码

int main()
{
	定义整形变量int i,j,m,n,number;
	令m=0;
	scanf("%d",&n);输入n
	for(循环n-1次)
     {
		number=2的i次方-1;
		for(j=2;j不大于number开平方;j++)
		{
		    如果(判定number除以j余数是否为0) 跳出循环该循环语句体break;
		}
		如果(j大于number开平方)
		{
			printf("%d\n",number);
			m++;用来计数
		}
	}
	if(m==0)即计数为0,为没有梅森数时
	{
	    printf("None");
	}
	return 0;
}

1.2.2 实验代码截图

1.2.3 造测试数据

输入数据 输出数据 说明
1 NONE 不超过(2^3)-1的梅森数有0个
12 不超过(2^3)-1的梅森数有4个
666 不超过(2^3)-1的梅森数有8个

1.2.4 PTA提交列表及说明


提交列表说明
没什么大问题。

1.3同构数

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

输出格式:

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

输出样例:

1.3.1数据处理

数据表达:定义整型int变量i,N;
数据处理:利用for循环嵌套if判断再利用韩信点兵取余思想,筛选出1-1000的同构数。
伪代码

int main()
{
    定义整型变量int i,N;
    for(从1-1000循环并筛选)
    {
        N = i²
        if(十位数取余==i||百位数取余==i||千位数取余==i)
        {
          printf("%6d根据输出格式对齐",i);
        }
    }
    return 0;
}

1.3.2实验代码截图

1.3.3 造测试数据

输入数据 输出数据 说明
1~1000之间的全部同构数。

1.3.4 PTA提交列表及说明


提交列表说明
格式错误:少了空格,后来直接修改“ %d”为“%6d”,就解决了。

二、代码互评

同学(乐树文)代码

我的代码

不同点:

1.他的代码相比较我的而言,更加简洁,我多写很多步骤,比如我多定义一个N为了让它与n区分,然后还要比n大一次,所以在循环条件那加了个n--;他直接在第二个for循环里用j<i表示出来了;
2.我的主for循环框架是递增的,他的主for循环框架是递减的;
3.他的整型变量是直接在for循环临时用的时候临时定义的,既然对了,证明可行,下次我也试试。

同学(柏朝晖)代码

我的代码

不同点:

1.他的代码是用自定义函数写的,使用条件以及返回判断i的值是不是同构数,不是则返回0;我则普通方法直接判断,不是同构数则继续循环,是则记录输出下来;
2.我定义的较为简洁,通俗易懂,他的代码高深一些,再者加上我发现我对函数的运用不是很了解其运行步骤,就只看出这么多了。

三、学习总结

3.1 学习进度条

|||||
-|-|-|-|-|
周/日期|这周所花的时间|代码行|学到的知识点简介|目前比较迷惑的问题|
第七周|10小时|132行|常用的数学函数,if-else语句|函数的运算问题|
第八周|13小时|156行|学会运用for循环语句和知晓DevcC++调试|对于DevcC++还是不大会用|
第九周|12小时|145行|学会了函数定义和调用函数|对于函数的返回,不是很理解|
第十周|12小时|150行|了解了逻辑运算符和ASCII代码|记不住逻辑运算符的意思以及ASCII代码|
第十一周|5小时|70行|理解并运用switch语句,对数组有些了解|对于数组的使用还是不熟练|
第十二周|8小时|121行|加深了while循环语句的理解,以及理解了数组的定义,还有对于do-while的使用|突然发现自己并不会使用函数写代码,有点迷|
第十三周|10小时|145行|严谨了对于break的运用,以及初步了解了continue的使用|continue的使用不熟练,也不会灵活使用,容易被绕晕|
第十四周|12小时|163行|开始慢慢挖掘字符型代码写法了,之前对字符型数据一无所知|对于字符型的运用不是很灵活,比较呆滞和僵硬|

3.2 累积代码行和博客字数

时间 博客字数 代码行数
第五周 464 0
第六周 1017 50
第七周 1638 182
第八周 2533 288
第九周 3421 433
第十周 4399 583
第十一周 5051 653
第十二周 5789 774
第十三周 6686 919
第十四周 7985 1082

3.3 学习内容总结和感悟

3.3.1 学习内容总结

3.3.2 学习体会

不知不觉,就要到期末考试了,我总结了一下自己所学的知识,和对于以往题目的经验,我觉得C语言这门课程,理解题意是一个方面,翻译题意是另一个方面;我们不断做题,各方面能力都会逐步提升,但是由于我的平常不怎么刷题,对于题目的理解还是太差劲了,还有翻译题意的能力,不足归不足,用功不到位才是大问题。

posted @ 2019-11-28 14:40  凉瑾年  阅读(412)  评论(1编辑  收藏  举报