C语言1博客作业10

这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 C语言I博客作业10
我在这个课程的目标是 熟练掌握C语言
这个作业在哪个具体方面帮助我实现目标 熟练掌握了各种循环结构
参考文献 Markdown基本语法 集美大学林丽老师

一.PTA实验作业

1. 梅森数

题目内容描述:形如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)数据处理

 数据表达:
     用了整形变量,t=0作为变量标记
     当n=1时,输出None
     外层循环,从2开始,b=pow(2,a)-1
     内层循环,从2开始,如果b%i=0,t=1,跳出循环
     如果t=0,输出b
     t要重置为0
     返回主函数

数据处理:伪代码

 #include<stdio.h>
 #include<math.h>
 int main()
 {
     int n,i,a,b=0,t=0;//输入整形变量n,i,a,b,t
     scanf("%d",&n);
     if(n==1)//当n=1时
     printf("None");//输出None
     for(a=2;a<=n;a++)//从2开始循环n次
     {
        b=pow(2,a)-1;
        for(i=2;i<b;i++)//从2开始循环b次
            {
                if(b%i==0)//如果b%i=0
                  {
                      t=1;
                        break;//跳出循环
                  }
            }
      if(t==0)//如果t=0
      printf("%d\n",b);//输出b
      t=0;//t重置为0
      }
  return 0;
  }

(2)实验代码截图

(3)造测试数据

输入数据 输出数据 说明
4 3 7 从小到大的顺序输出所有不超过2的n次方−1的梅森数,每行一个有2个
5 3 7 31 从小到大的顺序输出所有不超过2的n次方−1的梅森数,每行一个有3个
6 3 7 31 从小到大的顺序输出所有不超过2的n次方−1的梅森数,每行一个有3个

(4)PTA提交列表及说明

提交列表说明

 答案正确:在编译器中提前编译,其中有一次答案错误是因为没有考虑到b%i=0的情况

2.输出三角形字符阵列

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

输入格式:
 输入在一行中给出一个正整数n(1≤n<7)。
输出格式:
输出n行由大写字母A开始构成的三角形字符阵列。格式见输出样例,其中每个字母后面都有一个空格。
输入样例:
  4
输出样例:
  A B C D 
  E F G 
  H I 
  J 

(1)数据处理

 数据表达:用了整型变量n,i,a,b,c
         表达式: b=n-1;c=(1+n)*n/2;循环c次输出字符
         如果如果i==n-1,则输出换行n+=b; b--;

数据表达:伪代码

 #include <stdio.h>
 int main()
 {
     int n,i,a,b,c;//输入整形变量n,i,a,b,c
     scanf("%d",&n);
      b=n-1;//下一行的数目=上一行的数目-1
     c=(1+n)*n/2;//数目的规律
     for(i=0;i<c;i++)//循环c次
       {
          printf("%c ",'A'+i);//输出'A'+i
          if(i==n-1)//如果i==n-1
	 {
                printf("\n");//输出换行
                n+=b;
                 b--;
             }
       }
   }

(2)实验代码截图

(3)造测试数据

输入数据 输出数据 说明
1 A 输出1行由大写字母A开始构成的三角形字符阵列
2 A B C 输出2行由大写字母A开始构成的三角形字符阵列
3 A B C D E F 输出3行由大写字母A开始构成的三角形字符阵列

(4)PTA提交列表及说明

提交列表说明

 1.格式错误:第13行中没有输出换行
 2.答案正确:在第13行中输出换行

3.同构数

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

####### 输出格式:

在一行中输出所有满足条件的同构数,每个数输出占6列。没有其它任何附加格式和字符。
输出样例:
    1     5     6    25    76   376   625

(1)数据处理

 数据表达:
     用了定义函数fun,用了整形变量
     用了if结构选择循环,后用了for结构循环

数据处理:伪代码

 #include<stdio.h>
 int fun(int x)//定义fun函数
     {
  int k;//输入整形变量k
  k=x*x;
  if((k%10==x)||(k%100==x)||k%1000==x)//如果k满足(k%10==x)(k%100==x)(k%1000==x)其中一个或者多个

	 return 1;//返回值为1
  else//否则
	 return 0;//返回值为0
      }
 int main(){
 int i=0;//输入整形变量i
 for(i=1;i<=1000;i++)//从1开始,循环1000次
     {
	if(fun(i)){//如果fun函数i为真函数
         printf("%6d",i);//输出i
	 }
 }
 return 0;
  }

(2)实验代码截图

(3)造测试数据

输入数据 输出数据 说明
1 5 6 25 76 376 625 1~1000之间的全部同构数。

(4)PTA提交列表及说明

提交列表说明

 1.答案错误:第5行中少了k%1000==x
 2.编译错误:第13行中写成了i<1000
 3.答案正确:第5行中加上k%1000==x,在第13行中写出i<=1000

二.代码互评

同学代码:

自己代码:

比较

 (1)第一份代码用了char op字符型变量,结构上该同学的更加整洁美观,也更容易懂。
 (2)我的代码直接定义整形变量,后面变为字符型输出
 (3)这位同学的比我的更简单,更容易懂

同学代码:

自己代码:

比较

 (1)第一份代码用了自定义函数,然后先进行了for循环然后进行while结构,最后进行if判断,结构上该同学的整洁美观。
 (2)我的代码用了定义fun函数,先进行了if选择,后进行for循环,最后输出i

1.学习进度条

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第四周 7小时 100行 在屏幕上显示Hello World!
第五周 8小时 100行 求华氏温度对应的摄氏温度
第六周 21小时 400行 如何用 MinGW-w64 来编译C程序
第七周 24小时 478行 运用if语句完成各种数学程序 对于&&的用法不了解,现在操作不熟练
第八周 20小时 349行 掌握使用for循环语句实现指定次数的循环程序设计
第九周 23小时 264行 学会使用自定义函数 目前不太熟练
第十周 22小时 167行 熟悉多分支结构、字符型数据类型和逻辑运算符 还没有完全熟悉
第十一周 18小时 150行 熟悉多分支结构switch语句的使用
第十二周 16小时 130行 熟悉使用while和do-while结构解决问题 目前还不太熟练
第十三周 15小时 120行 熟悉使用for结构,了解并掌握了break语句和continue语句 目前还不太熟练continue语句
第十四周 15小时 180行 熟悉使用循环结构 目前还不太熟练

2. 累积代码行和博客字数

时间 博客字数 代码行数
第四周 525 50
第五周 645 100
第六周 645 400
第七周 2659 478
第八周 3586 597
第九周 4769 698
第十周 5897 787
第十一周 6289 897
第十二周 7594 1056
第十三周 8679 1170
第十四周 9879 1278

3 .学习内容总结和感悟

(1)学习内容总结

(2) 学习体会

学习c语言有一段时间了,越是学到后面越难,上周学习了break语句和continue语句,这周总结了循环结构,并且知道了这两个语句的区别,又增加了一项编码技巧,又学到了新的C语言知识,现在编代码时没有以前那么吃力了,但是仍然不太熟练,而且题目也越来越难了,我还欠缺很多的锻炼,也欠缺很多知识,我以后还需要更努力的去练习,花更多的时间在这里,朝着我的目标前进

posted @ 2019-11-27 18:07  软4杨宇  阅读(499)  评论(12编辑  收藏  举报