C语言博客作业--数据类型

一、PTA实验作业

题目1:

1.本题PTA提交列表

2.设计思路

阅读题目可知本题最大的难点就是编写一个可以调用题目表的函数

  • (1)定义变量a为我们要输入的区位码。
  • (2)输入a的值。
  • (3)调用函数chinese并将实参a的值传到函数中去并保留在函数形参a中。
  • (4)函数中定义变量b,c分别用来保留a的第一个字节和第二个字节
  • (5)观察表可知行列最大不超过100
  • (6)因此c=a%100,b=a/100.
  • (7)先输出第一个字节b+160;再输出第二个字节b+160.

3.代码截图

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

本题比较简单就是题意比较不好懂,题目也就是要求用C语言中原本存在的资源进行编程,认真读题后并没什么难题

题目2:掉入陷阱的数字

1.本题PTA提交列表

2.设计思路

  • (1)定义函数change用来实现某一个数的每一位数想加再乘以3加1.
  • (2)定义变量i=1用来控制循环,b用来保存第i次掉入陷阱后的数,而N则用来保留第i+1次掉入陷阱的数
  • (3)先输入一个N,并让b=N,来保留第1个数
  • (4)调用函数change(N,i)并让N的返回值
  • (5)如果N=b则结束程序;
  • (6)for(i=2;;i++)
  • (7)调用N=change(N,i);
  • (8) 当N=b时结束程序;否则让b保留N;
  • (9) 下面进行函数double change(int n,int i)编写
  • (10)定义n的每一个数总和为sum=0;a用来保存每一个数的数值;
  • (11)do{a=n%10;n=n/10;sum+=a;}while(n!=0)
  • (12)程序返回值sum*3+1.

3.代码截图

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


第一次提交的时候有一个一部到位的提示错误。调试过程如下。

原本答案应该是只有一行。而最后却有两行。原因就是我自己在循环外没有进行一次的判断。造成错误。

题目3. 简单计算器

1.本题PTA提交列表

2.设计思路

  • (1)定义字符型变量OP用来保存输入的字符,和浮点型变量a来保留每一个操作数,和最后结果sum,
  • (2)先输入一个a,并用sum来保留a。
  • (3)while(1>0){
  • (4)输入一个操作字符
  • (5)当op等于=时,输出sum保留0个小数并结束程序
  • (6)输出下一个操作数。
  • (7)如果(o'&&op!='-'&&op!='/'p'/'&&a0||(op!='+&&op!='*')输出ERROR并结束程序。
  • (8)当op=='+',则sum=a+sum;
  • (9)当op=='/',则sum=a/sum;
  • (10)当op=='',则sum=asum;
  • (11)当op=='-',则sum=a-sum;

3.代码截图

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


两次错误分别是解决分母为0和非法字符。的问题。两个问题解决的方案应该是相似的。就是如果出现了/(就除号)要判断它后面的浮点型变量是不是0.第二个就是我把加减乘除拿出来,只要字符形变量不等于这些字符则判定错误。

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

三、本周学习总结

1.你学会了什么?

1.1 一维数组如何定义、初始化?
先定义这个数组的数据类型还有数组的长度(然后重点就是要从0开始给数组赋值),初始化可以{0}

1.2 一维数组在内存中结构?可画图说明。数组名表示什么?
一堆数组就是一系列连续的地址,每一个数据占某一字节的长度(如char就是两个)数组名为数组首地址。

1.3 为什么用数组?
因为如果不用数组我们就要定义非常多不同的变量去保存这些数据。

1.4 介绍选择法、冒泡法、直接插入排序如何排序?伪代码展示.
选择法就是在每一次的寻找过程中都找到一个最小的数放在最前面,这样需要重复n(n-1)/2次的比较最后得出结果。
冒泡法就是将相邻的两个数进行比较,大的数往后移(称为冒泡),直到不再有数相互移位,这样就可以完成排序
直接插入排序我认为应该先找出这一组数据的最大最小值作为首尾元素,然后将一个个数据插入到这个数组合适(即比前一项小比后一项大)的位置去。

1.5 介绍什么是二分查找法?它和顺序查找法区别?
就是将一个数组从中间开始且成本两半,将我们输入的数与中间的两个数或者一个数比较,若大于,则对后半部分进行重复操作直到这个数是这两个数之间的数值,反之则对前半部分进行重复操作直到这个数是这两个数之间的数值

1.6 二维数组如何定义、初始化?
数组类型[行长度][列长度]。和一维数组一样要重[0][0]开始定义

1.7 矩阵转置怎么实现?方阵中:下三角、上三角、对称矩阵的行标i列标j的关系?请说明。
先给某一个二维数组进行赋值,好了之后只要对上三角或者下三角进行操作即I>j或者i<j进行行标和列标的互换。下三角行行标i>列标j,下三角就是列标j>行标i。

1.8 二维数组一般应用在哪里?
有一系列元素时用一维数组,如果这些元素有一定的位置逻辑,如矩阵,就用二维数组

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

对数组传入函数的形参实参的运用不够熟练,没办法很好地把某一个程序用模块化的函数轻易的写出,这是我认为我很不熟练地一部分,然后就是一些定义什么的没有很好地记忆。

posted @ 2017-11-26 11:50  这个人有毒啊  阅读(283)  评论(1编辑  收藏  举报