一、PTA实验作业

题目1:7-6 掉入陷阱的数字

1. 本题PTA提交列表

2. 设计思路

  • 1.定义输入的变量N,输出次数i,判断变量x,以及第一组J
  • 2.输入N,并给i附上初始值0,计算第一次的J
  • 3.利用do-while(x!=J)循环循环内
    每一次i++,
    输出i,J
    并使x=J
    J=SKT(x);//调用函数
  • 4.//若输入的不为陷阱数则需要输出i+1
    printf("%d:%d\n",i+1,J);}
    自定义函数:(实现 先将其各位数字相加求和,再将其和乘以3后加上1,变成一个新自然数N)
  • 1.定义变量x为输入的值,sum以及N为返回主函数的值
  • 2.利用while(N!=0){
    取出各个位数字
    累加到sum
    将sum*3+1给N
    将N返回主函数

3.代码截图

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


不能进入下一次的循环,在循环外给i附上初值,给J求出第一次的值再进入循环即可
列表部分正确仅为第一次的结果。

题目2:7-7 发红包

1. 本题PTA提交列表

2. 设计思路

  • 1.分别定义abcedfg用于表示各个面额的张数,x为金额数
  • 2.输入x
  • 3.分别计算
    a=x/100;//求100元张数
    b=(x-a100)/50;//50元的张数
    c=(x-a
    100-b50)/20;//20元的张数
    d=(x-a
    100-b50-c20)/10;//10元的张数
    e=(x-a100-b50-c20-d10)/5;//5元的张数
    f=(x-a100-b50-c20-d10-e5)/2;//2元的张数
    g=(x-a
    100-b50-c20-d10-e5-f*2)/1;//1元的张数
  • 4.按格式输出面额及张数

3.代码截图

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

调试过程没遇到什么问题,
PTA提交显示格式错误,为没有控制数字个位对齐

题目3:7-10 简单计算器

1. 本题PTA提交列表

2. 设计思路

  • 1.定义字符变量ch
  • 2.定义x=0作为判断变量n为输入的值,i为每次运算的中间值
  • 3.利用while(ch!='=')循环,再循环内输入n以及字符利用if-else if语句选择运算式,再除法运算时若除数为0则将x=1并break
  • 4.若有非法运算符x=1
  • 5.x!=1输出i若x==1输出ERROR

3.代码截图

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


没有对除数为零以及非法运算符的情况进行判断

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

三、本周学习总结

1.你学会了什么?

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

一维数组定义,需要明确数组变量名,数组元素类型和数组的大小,其一般形式为: 类型名 变量名 [数组长度]
数组的初始化可以再定义数组时,对数组元素赋初值,其一般形式为:类型名 变量名 [数组长度]={初值表}(可以只针对部分元素)

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

结构如课本150页图7.2所示
数组名表示该数组所分配连续内存空间中第一个单元的地址

1.3 为什么用数组?

数组可以使一组相同类型数据有序排列,并且连续存放,使用方便。

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

选择法:

  • 1.对数组的n个元素附上初值
  • 2.利用for对n个元素进行排序
  • 3.a[i]<a[min]则将两值交换
  • 4.将a[min]返回
    冒泡法:
  • 1.定义变量a[10],i,j,k
  • 2.一次将数输入数组
  • 3.对n个数排序,for(k=0;k<n-1;k++) max=k
  • 4.输出n个数组元素的值
    直接插入法:
  • 1.从第二个数开始
  • 2.如果比前一个数小,交换到前一个位置
  • 3.重复2,直到该数前面没数字或者前面的数比它大

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

二分查找法:先确定该区间的中点位置,将待查的x值与a[mid]比较,若相等,则查找成功并返回此位置,若a[mid]>x,则新的查找区间是a[1..mid-1]若a[mid]<x,则新的查找区间是a[mid+1..n]
二分查找法适用于排序过的数组,不必将每一个元素都进行比较,速度快,顺序查找法要遍历数组

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

定义:类型名 数组名 [行长度][列长度]
初始化:分行赋初值:int a [3] [3] ={ { 1,2,3} , {4,5,6} ,{7,8,9} } 顺序赋初值: int a [3] [3] = {1,2,3,4,5,6,7,8,9}

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

对角线上元素不变,其余元素两个下标互换
上三角:i<=j
下三角:i>=j
对称矩阵:a[i][j]==a[j][i]

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

矩阵,表

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

对于二维数组的部分极不熟悉,考试题中一些基本的概念性的问题,以及对于手写代码,考试发现对于函数部分的知识仍旧掌握不牢固。对于数组只是知道其基本的概念,涉及到应用层面的问题就凉凉了。PTA中一些需要判断的问题,没能第一时间想出判断的方法有时还忘记去判断。对于一些题目的本意有的也不太理解。

posted on 2017-11-26 16:48  aabbcc.czb  阅读(300)  评论(4编辑  收藏  举报