您的位置:首页 > 编程语言 > C语言/C++

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

2017-11-26 23:01 246 查看

一、PTA实验作业

题目1:掉入陷阱的数字

1. 本题PTA提交列表



2. 设计思路

定义sum()函数计算接收数字的各位数之和

定义整型变量result储存各位数之和

for number to number=0:result+=number%10; number/=10

定义主函数

1.定义变量n,n_new. n表示旧自然数n_new表示新自然数

2.输入n

3.for i=1(i++):

--计算并输出新自然数n_new=3*sum(n)+1;序号为 i .

--如果n==n_new,即掉入陷阱时break.

--将n_new的值赋给n,为下次循环做准备: n=n_new.

3.代码截图



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

无问题

题目2:发红包

1. 本题PTA提交列表



2. 设计思路

将money对 面额 从大到小取余得到的值输出然后除以面额·

3.代码截图



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

-无问题

题目3:简单计算器

1. 本题PTA提交列表



2. 设计思路

1·定义变量:ch=0记录运算符,flag=0标记错误,n储存数值

2·输入n,定义result初始值为n储存运算结果·

3·while( (ch=getchar()) != '=') :

--输入操作数n

--判断运算符switch(ch) 如果为'+',result+=n; 如果为'-',result-=n; 如果为'',result=n; 如果为'/':如果n==0,flag=1,否则result/=n; default:flag=1

判断flag: if(flag)输出result,否则输出 Error·

3.代码截图



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

无问题

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



三、本周学习总结

1.你学会了什么?

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

定义:类型名 数组名 [数组长度];

初始化:对于较短的数组可以直接赋值,如a[2]={0,1};,对于长度大的可以用循环进行赋值,如for(int i=1;i<=1000;i++) a[i]=0;

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

数组名是数组中首元素的地址

1.3 为什么用数组?

数组能储存大量数据,方便对多个变量的多次调用.

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

冒泡法:for i=0 to n,进入内层循环:for u=0 to n-1 如果a[i]>a[i+1]就交换两者间的值

选择法:for i=0 to n-2,将第一个数作为最大数,比较n次,与后面数比较,如果后面的数大,记录下标后与最大数交换值.

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

对一个已经排序的数组,取其中间位置,记录下标.找比中间值大的就向右二分,否则向左二分.以此类推直到满足条件

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

定义:数据类型 数组名[整常量表达式][ 整常量表达式];

初始化:数据类型 数组名[整常量表达式][ 整常量表达式]={ 初值 };或利用循环进行赋值.

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

1.对于数组a[][],定义一个数组b[][],遍历数组a对b赋值:b[r][c]=a[c][r];则b[][]为a[][]的转置

2.遍历数组,将数组a[r][c]的值与a[c][r]的值进行交换.

下三角中列数不超过行序数:c<=r.

上三角中列数不小于行序数:c>=r.

对称矩阵:遍历数组,a[r][c]=a[c][r].

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

一般可以应用于矩阵问题.

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

对于字符数组还不是太理解.

其他的基本上理解.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: