zoukankan      html  css  js  c++  java
  • C语言I博客作业10

    这个作业属于哪个课程 C语言程序设计II
    这个作业要求在哪里 C语言I作业10
    我在这个课程的目标是 学会编程,运用编程制作有趣的东西
    这个作业在那个具体方面帮助我实现目标 多了解c语言的一些知识
    参考文献 C语言程序设计I,百度

    1.PTA作业

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

    **数据表达:定义整形变量i,j,n,定义字符变量ch,令ch=‘A’,i,j为循环条件,n为输入的数。**
    **数据处理:伪代码**
    定义整形变量和字符变量
    输入n
    for(i=0;i<n;i++)
    {
        for(j=0;j<n-i;j++)for循环
            {
            printf("%c ",ch);输出字符
            ch++;字符累加
            }
            printf("
    ")输出回车
      end
    

    1.1.2实验代码截图

    1.1.3造测试数据

    输入数据 输出数据 说明
    2 1-7之间
    3 1-7之间
    4 1-7之间
    6 1-7之间

    1.1.4PTA提交列表及说明

    ###提交列表说明:
    **1.答案错误:我没有使用循环嵌套,输出不了多个行,字母没有出来,后经改正运用循环嵌套**
    **2.答案错误:我写的是“i=1;i<=n和j=1;j<=n-i"显示答案错误后改为i=0;i<n;j=0;j<=n-i**
    

    1.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数据处理

    **数据表达:定义整形变量i,j,sum,n,count=0 ,n为输入的数 ,sum为输出梅森数,i,j为循环条件 **
    **数据处理:伪代码**
    输入n 
    if n>=2&&n<20 then 
         for i=2 to n
     把2的m次方减1赋值给sum
     for j=2 to i-1 
     if i%j==0 then 
     count累加 
    if x==0 then 
       输出i和换行
       count=0;
    else输出None
    

    1.2.2实验代码截图


    1.2.3造测试数据

    输入数据 输出数据 说明
    0 没有素数
    8 范围内的随机数
    12 范围内的随机数
    19 最大的数

    1.2.4PTA提交列表及说明

    **提交列表说明:**
    **1.部分正确:在0的那种情况,答案错误,询问大佬后,在23行中添加count=0**
    **2.编译错误是自己在devc++上出现的“;”忘记打,或者是将“;”输入为“,”**
    **3.不知道怎样一个顺序,后询问同学,借鉴后完成**
    

    1.3同构数

    **内容:**一个数恰好出现在它的平方数的右端,这个数就称为同构数。找出1~1000之间的全部同构数。
    输出格式:
    在一行中输出所有满足条件的同构数,每个数输出占6列。没有其它任何附加格式和字符。
    输出样例:
         1     5     6    25    76   376   625
    

    1.3.1数据处理

    **数据表达:定义一个变量i,为循环条件。**
    **数据处理:伪代码**
    定义变量
    for i<-1;i<=1000;i++)
    位数有个,十,百。
    if(0<=i&&i<=9)个位数,即一位数
    if(i==(i*i)%10)表示这些位数
    输出i
    if(10<=i&&i<=99)十位数,即两位数 
    if(i==(i*i)%100)
    输出i
    if(100<=i&&i<=999)百位数,即三位数
    if(i==(i*i)%1000)
    输出i
    if(i==1000)
    当i为1000时,显然不是同构数,故不作判定
    

    1.3.2实验代码截图

    1.3.3造测试数据

    输入数据 输出数据 说明
    同构数

    1.3.4PTA提交列表及说明

    **提交列表说明:**
    **1.格式错误:我将%d后面加了6个空格,在devc++上运行是正确的,比较懵,就将空格打在%d前面**
    **2.格式错误:询问同学,最终将%d改为了%6d,答案正确**
    

    2.代码互评

    同学的代码

    自己的代码

    **1.1.她定义了整形变量n,i,a,b,c b=n-1;c=(1+n)*n/2;循环c次输出字符 ,如果i==n-1,则输出换行n+=b; b--;**
    **1.2.我的定义整形变量i,j,n,定义字符变量ch,令ch=‘A’,i,j为循环条件,n为输入的数。**   
    **2.1.她在for循环中输入字符‘A’循环嵌套中为for与if两种语句**
    **2.2.我运用char ch字符变量,运用两个for语句,对字符进行输出**
    

    同学的代码

    自己的代码

    **1.1.她用了整形变量i,y,digit,sum; i用来控制循环次数,即用户给出的找同构数的范围, y和n,digit用来判断数i的位数,sum用来保存i的平方。**
    **1.2.我只定义一个变量i,为循环条件。**
    **2.1. 她运用for循环语句对digit初始化为0 ,将i的平方赋值给sum ,将i赋值给n , 将整形变量n/10赋值给y ,将整形变量n/10赋值给n ,digit累加,用 switch语句,分别判断位数不同的数是否符合同构数的条件,如果符合则输出该数,然后跳出循环。** 
    **2.2.我是对1000以内的数字进行分段求,有百位数,个位数等,整体感觉我的要简洁些**
    

    3.学习总结

    3.1学习进度条

    周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
    第四周 8h 20 简单输出
    第五周 10h 40 学习输入
    第六周 20h 60 用WinGW-w64来编译C程序 文档真的打不开,可能是电脑原因
    第七周 10h 90 关系运算,if-else语句,格式化输入语句scanf() 有的数学逻辑问题不太懂
    第八周 8.5h 80 for的循环语句,指定次数的循环程序设计 不太会文字与数学的转换
    第九周 8h 100 函数的调用和定义的初步认识 自定义函数不熟悉
    第十周 10h 170 多分支结构、字符型数据类型和逻辑运算符 多个数据输出不熟练
    第十一周 11h 110 熟悉多分支结构switch语句的使用 逻辑思维能力差
    第十二周 9h 200 熟悉whlie和do-whlie结构 字符那方面不熟
    第十三周 8h 180 熟悉嵌套循环,break和continue的用法 当运用到真题方面还是会不太会
    第十四周 8h 110 选择合适的算法、合理的循环结构,熟练的编写程序 最大的问题是不懂题意

    3.2累积代码行和博客字数

    时间 博客字数 代码行数
    第四周 441 20
    第五周 441 20
    第六周 1112 150
    第七周 1800 190
    第八周 2300 220
    第九周 3100 220
    第十周 4000 400
    第十二周 4900 620
    第十三周 6700 910
    第十四周 7600 1020

    3.3学习内容总结和感悟

    3.3.1学习内容总结

    3.3.2学习体会

    1.感觉还是挺难得,刚开始题目都看不懂
    2.学习之旅长路漫漫,还得慢慢来,不会的就要搞懂
    3.期末也快要到了,努力复习,抓紧时间
    4.有空就多多练习练习

    **补充:**
         一、输入数字可以用scanf输入。
    如果输入的是整型数据,可以用
    int a;
    scanf("%d",&a);
    实现把输入的数字赋值给a的效果。
    类似的,如果是float, double,short,long等类型的数据,那么就要把变量定义成对应的类型,然后使用各自的格式字符%f,%lf,%hd,%ld等进行输入。
    二、输入单个字符。
    输入单个字符可以用以下两种函数。
    定义char c;
    1 scanf("%c", &c);
    这种方法和输入数字是类似的,%c仅读入一个字符,并赋值给c。
    2 c = getchar();
    getchar函数的功能就是读入一个字符,并以返回值形式返回。
    三、输入一串字符(以空白字符分隔)。
    可以用scanf的%s格式。
    char str[100];//空间要定义足够大
    scanf("%s", str);//将字符串读入并存在str中
    四,读入一行数据。
    可以用gets函数。gets的功能就是读入一整行数据,以换行符为结束。
    char str[100];//同样要足够大的空间
    gets(str);
    补充,无论哪种形式的输入,都可以用getchar逐个输入到字符串中,然后判断结束符以结束输入,再对字符串做处理。这种方法对编程水平要求比前几种略高,代码量也更大,但好处是完全自己控制,更加灵活。、输入数字可以用scanf输入。
    如果输入的是整型数据,可以用
    int a;
    scanf("%d",&a);
    实现把输入的数字赋值给a的效果。
    类似的,如果是float, double,short,long等类型的数据,那么就要把变量定义成对应的类型,然后使用各自的格式字符%f,%lf,%hd,%ld等进行输入。
    二、输入单个字符。
    输入单个字符可以用以下两种函数。
    定义char c;
    1 scanf("%c", &c);
    这种方法和输入数字是类似的,%c仅读入一个字符,并赋值给c。
    2 c = getchar();
    getchar函数的功能就是读入一个字符,并以返回值形式返回。
    三、输入一串字符(以空白字符分隔)。
    可以用scanf的%s格式。
    char str[100];//空间要定义足够大
    scanf("%s", str);//将字符串读入并存在str中
    四,读入一行数据。
    可以用gets函数。gets的功能就是读入一整行数据,以换行符为结束。
    char str[100];//同样要足够大的空间
    gets(str);
    补充,无论哪种形式的输入,都可以用getchar逐个输入到字符串中,然后判断结束符以结束输入,再对字符串做处理。这种方法对编程水平要求比前几种略高,代码量也更大,但好处是完全自己控制,更加灵活。
    
  • 相关阅读:
    第一章、Docker 简介
    远程库的创建及操作
    分支
    Git常用命令
    初始化本地仓库
    Git的本地结构与远程中心
    Git的安装
    版本控制系统
    冒泡排序
    选择排序
  • 原文地址:https://www.cnblogs.com/zhangsanri/p/11943299.html
Copyright © 2011-2022 走看看