C语言I博客作业10

这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 C语言I作业10
我在这个课程的目标是 熟练运用循环嵌套语句与if-else语句的结合
这个作业在那个具体方面帮助我实现目标 在PTA的练习中逐渐熟练语句用法,和对知识的自我总结上
参考文献 集美大学林丽老师、百度文库、C语言程序设计

1.PTA实验作业

1.1 题目名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用于循环累加,都为整型变量;字符op用于输入字符从字符A开始;
数据处理:


    int n,i,j;  定义n,i,j变量的类型
    char op='A';  定义字符,并赋值
    scanf("%d",&n);   输入范围
    for(i=1;i<=n;i++)   进入循环,直到i的值大于n时,停止循环
    {
        for(j=i;j<=n;j++)  进入循环,直到j的值大于n时,停止循环
        {
        printf("%c ",op);   每循环一次就输出一次op
        op++;    op的累加
        }
        printf("\n");  循环完第二次循环后,输出换行
    }
    return 0;  结束
}

1.1.2实验代码截图

C语言I博客作业10_第1张图片

1.1.3 造测试数据

输入数据 输出数据 说明
3 输入的是3,组成的是三行三列的三角形
5 输入的是5,组成的为五行五列的三角形
7 C语言I博客作业10_第2张图片 输入7,组成七行七列的三角型,不过字母不够

1.1.4 PTA提交列表及说明

* 答案错误:换行的位置不对,通过调式,找到了错误并改正了
* 答案错误:循环的范围不对,通过调试运行,找到了问题,并改正了

1.2题目名2

梅森数

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

*数据表达*:
n,i用来统计循环次数,a代表输入数,b用来判断素数,num用来存放数据,它们都为整型变量
*数据处理*:
  int n,a,b=0,i=0,num=0,c=0;  定义变量
  scanf("%d",&a);  输入a的值
  if(a==1)  如果a等于1
  printf("None"); 输出None
  for(n=2;n<=a;n++)  进行循环,直到n大于a时为止
  {

    num=pow(2,n)-1;  计算num的值
    for(i=2;i<=num-1;i++)  对被除数进行循环
    {
     if(num%i==0)  如果num除以i没有余数时
    {

     b=1;   b等于1
     break;  跳出循环
    }
    }
    if(b!=1)  如果b不等于1
    printf("%d\n",num);  输出num的值
    b=0; 

    }
  return 0;  结束
}

1.2.2实验代码截图

C语言I博客作业10_第3张图片

1.2.3 造测试数据

输入数据 输出数据 说明
7 在2^7-1内的素数只有3,7,31,127,8191
20 在2^20-1内的素数只有3,7,31,127,131071,524287
50 C语言I博客作业10_第4张图片 在2^50-1内的素数只有3,7,31,127,131071,524287,2147483647

1.2.4 PTA提交列表及说明

*编译错误:忘记打分号,看错误提示发现并且改正了
*部分正确:没讨论a=1时的情况,看了错误信息发现的,然后添上这个情况就对了

1.3 题目名3

同构数

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

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

输出样例:
     1     5     6    25    76   376   625

1.3.1数据处理

*数据表达*:
n代表范围,i用来判断同构数,sum用来输出1000以内的同构数,它们都是整型变量
*数据处理*:
int n=1000,i,sum;  定义n,i,sum变量的类型
    for(sum=1;sum<=n;sum++)   进行循环,直到sum大于n为止
    {
        i=sum*sum;   令i等于sum的平方
        if(sum==i%10||sum==i%100||sum==i%1000)  当sum的值满足i除以10的余数为sum或者i除以100的余数为sum或者除以1000的余数为sum时
            printf("%6d",sum);   输出sum
        }
        continue;  继续循环
    }
    return 0;  结束

1.3.2实验代码截图

C语言I博客作业10_第5张图片

1.3.3 造测试数据

输入数据 输出数据 说明
-------- 1 5 6 25 76 376 625 1000以内的同构数为1,5,6,25,76,376,625

1.3.4 PTA提交列表及说明

C语言I博客作业10_第6张图片

* 运行超时:输出的数据打错了,本该输出sum不小心打成了i,问了同学后改正的
* 运行超时:将循环中的sum打成了i,通过devc++试调发现错误,并改正的

2.代码互评

自己代码

C语言I博客作业10_第7张图片
C语言I博客作业10_第8张图片

同学代码:

C语言I博客作业10_第9张图片
C语言I博客作业10_第10张图片

* 该同学设置的变量与我的不一样,并且变量比我的要多
* 该同学在使用for循环的同时,还使用了while循环
* 该同学在循环上比我简单些,但是在内容上比我复杂很多

自己代码

C语言I博客作业10_第11张图片

同学代码

C语言I博客作业10_第12张图片

* 该同学定义的变量与我的不同,他刚开始定义的变量比我的少
* 该同学使用了自定义函数来判断素数,而我用的常规方法,在for循环中判断素数
* 该同学的代码不需要单独考虑输入值等于1的情况,而我的需要单独考虑

3.学习总结

3.1 学习进度条

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较困惑的问题
第六周 4天 20 用 MinGW-w64 来编译C程序,学习编程计算温度的转化
第七周 3天 99 学习用if,else等语句编译程序
第八周 2天 75 学习使用循环语句,用for来编译程序
第九周 3天 94 学习各种使用函数eg:fact(i) for循环与while循环的区别
第十周 2天 213 学习使用多种分支结构 对分支结构中for循环有点迷糊不太能理解
第十一周 1天 135 学习使用switch语句
第十二周 1天 96 学习使用while语句
第十三周 1天 83 学习使用循环嵌套,continue语句 循环嵌套的顺序
第十四周 1天 115 练习循环嵌套与if-else语句的结合 循环嵌套的顺序

3.2 累积代码行和博客字数

时间 博客字数 代码行数
第四周 557 28
第六周 1437 20
第七周 1434 99
第八周 2367 75
第九周 2681 94
第十周 2741 113
第十一周 2772 135
第十二周 2874 96
第十三周 4398 77
第十四周 1898 115

C语言I博客作业10_第13张图片

3.3 学习内容总结和感悟

3.3.1 学习内容总结

C语言I博客作业10_第14张图片

3.3.2 学习体会

本周老师没有上新课而是讲了题目,在老师和同学讲解题目的过程中,我渐渐的明白了一些我之前没看得太懂的代码,在本周的学习中我感觉循环这个问题有所深入。在PTA的不断练习中逐渐熟悉,随着PTA难度的增加,我们都可以发现以前觉得很难的题已经没那么难了,因为我们时刻都在面临新的题型,在不断的充实自己的知识点的同时,提高了我们的解题能力。希望在以后的学习也能这样得心应手。随着PTA的难度、行数也在逐渐提高,代表着我需要更加努力!
C语言I博客作业10_第15张图片

你可能感兴趣的:(C语言I博客作业10)