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的成就感无与伦比,敲代码的贼得劲,中间会遇到很多问题,也会很烦恼,
但是正确的办法就是勇敢迎接挑战,,这样才能真正的成长起来!!!

原文地址:https://www.cnblogs.com/liwenweiboy/p/11960372.html