zoukankan      html  css  js  c++  java
  • C语言博客作业数据类型

    一、PTA实验作业

    题目1:倒顺数字串

    1. 本题PTA提交列表

    2. 设计思路

    • 定义变量n,i,j
    • 输入n
    • i的值 for 1 to n,输出i,如果i<n,再输出空格,i自增
    • j的值for n-1 to 1,输出空格,再输出j,j自减
    • 返回0

    3.代码截图

    4.本题调试过程碰到问题及PTA提交列表情况说明


    发现输出了两个6

    因为j的初值取到n,所以还会重复输出一个6

    题目2: 打印菱形图案

    1. 本题PTA提交列表

    2. 设计思路

    • 定义变量。。。。
    • 输入一个值存入n
    • 第一个循环打印1~(n+1)/2行的图案
    • a=n+1-2i,b=2i-1
    • j的值for 1 to a 输出空格
    • k的值for 1 to b 输出*和空格
    • 换行 end
      -第二次循环打印(n+3)/2~n行图案
    • c=2i-n-1,d=2(n-i)+1
    • l的值for 1 to c输出空格
    • m的值for 1 to d输出*和空格
    • 换行 end

    3.代码截图

    4.本题调试过程碰到问题及PTA提交列表情况说明


    运行发现跟PTA的图案一模一样,但是提交却出现了格式错误,认真看下题目发现每个*后面都要空格,太惯性思维了
    然后改了代码还是有格式错误,输入3发现

    第二次循环的图案打印出现问题
    用3调试第二次的循环

    发现c的值为负数。。。。。。 在草稿上把输入的7当为特例写代码导致不具有普遍性,应该改正c的赋值

    题目3:掉入陷阱的数字

    1. 本题PTA提交列表

    2. 设计思路

    • 定义变量
    • 输入一个数存入N
    • i的值for 1 to 某个数(当N=N1时退出循环)
    • 把N赋值给M和number
    • 只要number!=0,number=number/10,n自增,循环结束得出N的位数n
    • j的值for 1 to n, a=M%10, M=M/10,sum=sum+a,j自增 先得出sum的值
    • N1=sum*3+1,得出新的数N1
    • 输出 i:N1
    • 如果N=N1直接退出循环,否则 把N1赋值给N,把sum赋值0,换行 end

    3.代码截图

    4.本题调试过程碰到问题及PTA提交列表情况说明


    第一次就进入死循环而且还没有换行,而且把计算N的位数n的循环放在外面,所以n的值不变了,我修改

    改正后格式正确但是从第二个数开始就不正确了

    发现第一次循环后sum的值不是0,会继续加上去,在大循环后面重新给sum'赋值为0

    二、截图本周题目集的PTA最后排名

    三、本周学习总结

    1.1 一维数组如何定义、初始化

    • 1.定义一个数组需要明确数组的变量名,数组元素的类型和数组的大小,一般类型为 类型名 数组名[数组长度].

    1.2 一维数组在内存中结构?可画图说明。数组名表示什么?

    • 数组名是一个地址常量,存放数组内存空间的首地址

    1.3 为什么用数组?

    • 在程序运行期间其值可以改变的量。其实理解得简单一点,变量就是一块小内存的名字,这块内存的大小由这个变量的类型决定,同时也决定了这块内存能存放数据的大小范围

    1.4 介绍选择法、冒泡法、直接插入排序如何排序?伪代码展示.

    选择法:

    • for 0 to n-1 控制外循环个数
    • 令k=i for i+1 to n 找下一个数到最后一个数中寻找最大值
    • 若后面有比最大值更大 则k=j
    • 否则用temp=a【k】,a【k】=a【i】,a【i】=temp 交换位置

    冒泡法

    • for 0 to n 控制循坏次数
    • for 0 to n-j 内循环个数
      -if 这个数大于下个数,则用temp=a【i】,a【i】=a【i+1】,a【i+1】=temp 进行交换位置

    插入法

    • i的值for 1 to n 控制外循环次数
    • j的值for i-1 to n
    • temp=a[i],a[j+1]=a[j],a[j+1]=temp 进行插入

    1.5 介绍什么是二分查找法?它和顺序查找法区别?

    • 假设数据是按升序排序的,对于给定值x,从序列的中间位置开始比较,如果当前位置值等于x,则查找成功;若x小于当前位置值,则在数列的前半段中查找; 若x大于当前位置值则在数列的后半段中继续查找,直到找到为止。
    • 相对于循序法效率更高

    1.6 二维数组如何定义、初始化?

    • 类型名 数组名 [行长度] [列长度] = {{初值表0},…,{初值表k}…}

    1.7 矩阵转置怎么实现?方阵中:下三角、上三角、对称矩阵的行标i列标j的关系?请说明。

    • 下三角 i>=j;上三角i<=j;对称矩阵i=j

    1.8 二维数组一般应用在哪里?

    应用于某些有一定的位置逻辑的元素,如矩阵

    2.本周的内容,你还不会什么?

    • 多种的排序法掌握并不精,虽然算法逻辑可以想出来,但是一旦用代码敲出来又是另一番光景
  • 相关阅读:
    POJ 3786 dp-递推 Adjacent Bit Counts *
    九度 1395 爱钱的胡老板 完全背包
    HDOJ 1085 Holding Bin-Laden Captive! (母函数)
    HDOJ 1028 Ignatius and the Princess III (母函数)
    HDOJ 1398 Square Coins 母函数
    生成函数(母函数)
    『转』 教你去视频网站的开始广告
    HDOJ 2082 找单词 (母函数)
    HDOJ 3177 Crixalis&#39;s Equipment
    Codeforces 322B
  • 原文地址:https://www.cnblogs.com/soyam/p/7900324.html
Copyright © 2011-2022 走看看