C语言I作业10

一、本周作业头

这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/10095
我在这个课程的目标是 熟练掌握好C语言,培养自己的思维能力,同时加快敲代码速度。
这个作业在那个具体方面帮助我实现目标 可以帮助进行的字符编程的运用
参考文献 百度百科、CSDN博客、C语言程序设计

二、本周作业

1.PTA实验作业

1.1 输出三角形字符阵列

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

输入格式

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

输出格式

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

输入样例:

4

输出样例

A B C D 
E F G 
H I 
J 

1.1.1数据处理

数据表达:用了char x='A';int i,j,n;其中char x='A'表示定义字符X且赋值为A,i,j分别表示循环起点,n表示输入的整数。
数据处理:

Begin
#include
int main ()
{
    char x←'A';
    int i,j,n;
    scanf("%d",&n);
    for i←1 to n
        for j←1 to n-i+1
            printf("%c ",x);
            x←x+1;
        }
        printf("\n");
    }
     End

1.1.2实验代码截图

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

1.1.3 造测试数据

输入数据 输出数据 说明
n=4 该三角形行有四行
n=5 C语言I作业10_第2张图片 该三角形行有五行
n=6 C语言I作业10_第3张图片 该三角形行有六行

1.1.4 PTA提交列表及说明


格式错误:printf("%c ",x);写成了printf("%c",x);
格式错误:printf("%c ",x);写成了printf(" %c ",x);

梅森数

输入格式

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

输出格式

按从小到大的顺序输出所有不超过2​n​​−1的梅森数,每行一个。如果完全没有,则输出“None”。

输入样例:

6

输出样例

3
7
31

1.2.1数据处理

数据表达:int n,i,j,number,count=0;其中n代表输入的正整数,i,j代表循环起点;number代表梅森数;count代表梅森数的个数。
数据处理:

Begin
#include
#include
int main ()
{
    int n,i,j,number,count=0;
    scanf("%d",&n);
    for i←2 to n
        number=pow(2,i)-1;
           for j←2 to number/2
               if number%j ← 0
                    break;
                    if(j>=number/2){
                        printf("%d\n",number);
                        count++;
                    }      
           }
           if count ← 0
               printf("None");
           }
           End

1.2.2实验代码截图

C语言I作业10_第4张图片

1.2.3 造测试数据

输入数据 输出数据 说明
n=6 当n=6时有三个梅森数
n=1 None 当n=1时,1不属于素数,所以无梅森数。
n=8 当n=8时有四个梅森数

1.2.4 PTA提交列表及说明


答案错误:这个题我是一直在Dev上运行然后再放到PTA上的,所以没有错误,但在用Dev运行的时候,我开始无论怎么修改for循环语句中的语句答案输出都是None;
开始以为是判断素数的条件写错了,又翻了下书本内容发现并没有什么错误,后来根据一个循环一个循环来看,发现第一个循环后面忘打了大括号,导致后面的语句都
没有执行,以至于答案一直都是None。

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

输入格式

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

输出样例

 1     5     6    25    76   376   625

1.3.1数据处理

数据表达:用了int i,num;其中i代表循环起点,num代表同构数。
数据处理:

Begin
#include
#include
int main ()
{
    int i,num;
    for i←1 to 1000
        num ← pow(i,2);
            if num%10 ← i||num%100 ← i||num%1000 ← i 
            printf("%6d",i);    
            }  
     End

1.3.2实验代码截图

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

1.3.3 造测试数据

输入数据 输出数据 说明
1 5 6 25 76 376 625 同构数有 1 5 6 25 76 376 625

1.2.4 PTA提交列表及说明

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

编译错误:开始定义时定义的是number,后再取余的时候使用的是num。
编译错误:多定义了一个j,却没有使用j.
格式错误:printf("%6d",i);写成了printf("%d",i);导致格式错误。
答案错误:在修改的过程中,不小心把for循环后的大括号去除了。

2.代码互评

自己代码 同学代码
C语言I作业10_第7张图片 C语言I作业10_第8张图片C语言I作业10_第9张图片

不同点:

1.该同学使用了自定义函数使程序变得更加简单,而我是使用循环的嵌套直接作答。
2.但是该同学使用自定义函数多用了一个循环,在运行的速度上面我的要快一些。

自己代码 同学代码
C语言I作业10_第10张图片 C语言I作业10_第11张图片

不同点:

1.我的代码定义的是字符A,而该同学运用字符型定义x=64而字符A的ascll值就是64。表达方式不一样
2.我的代码中for(j=1;j<=n-i+1;j++)而该同学的是for(j=1;j<=n-i;j++),我的j<=n-i+1表示当n等于i时,还能取j=1。

3.学习总结

3.1 学习进度条

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
10/8-10/12 5h 224 if-else语句和输入输出格式 变量的处理
10/13-10/18 12h 263 for循环语句,如何计算累加题 不知道什么时候用include
10/19-10/26 15h 334 如何编写自定义函数及更加熟练掌握for循环 自定义函数的使用
10/26-11/2 14h 355 如何使用逻辑表达式及else-if语句 如何去寻找else-if之间的关系
11/2-11/8 13h 284 如何使用switch语句 switch语句与for循环同用时的关系
11/9-11/15 16h 231 使用while语句以及字符型变量的输入输出,#include的使用 数组的使用
11/16-11/22 10h 203 使用循环的嵌套解决问题,以及break,continue语句 在多个循环中如何输出换行
11/23-11/29 12h 326 通过使用字符型变量进行解题 字符的输入与输出

3.2 累积代码行和博客字数

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

3.3 学习内容总结和感悟

3.3.1 学习内容总结
C语言I作业10_第13张图片

3.3.2 学习体会
这周的学习,相当又重新的把以前的知识点进行了一遍巩固,依然是使用for循环进行解决问题;同时又用到了以前所学习的知识,比如while语句;以及素数判断的条件;
然后现在更加注重的就是基础知识;只有好好地学习好了基础知识才能更加轻松的学习以后的知识。所以要不断的去复习之前所学习到的知识,温故才能知新。并且同时
要加强手写代码的能力,以及学会如何进行调试。

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