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

C语言博客作业--一二维数组

2017-12-02 22:09 597 查看

一、PTA实验作业

题目1:7-2 求整数序列中出现次数最多的数

1. 本题PTA提交列表



2. 设计思路

定义变量n,i,j,max等于0,a[]10用于存放输入的值,b[10]用于存放a[]中各个数有多少个;

输入n的值

i从0开始,每次加1,输入a[i]的值,直到i==n结束循环

i从0开始,判断i是否<n,,进入下一步,每次加一,直到条件不满足

j从0开始,判断j是否<n,,进入下一步,每次加一,直到条件不满足

如果a[i]==a[j],b[i]加一

i从0开始,判断i是否

输出a[j] 与max的值

3.代码截图



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



当时由于创造一个新的数组c[]用来存放b[]导致本题的变量太多,中间某些地方写错,用Dev调试,变量太多,很难看清楚,后来将c[]删除,用b[]来做就做对了。

题目2:7-8 加法口诀表

1. 本题PTA提交列表



2. 设计思路

定义变量repeat,i,n;

输入repeat的值

j从1开始,判断j是否<n+1,,a[o][j]每次加一,直到条件不满足

调用函数void arrange(int n);

定义变量a[][],i,j,op='+'

j从0开始,每次加1,a[0][j]=0,直到i==n+1结束循环

i从1开始,判断i是否<n+1,,进入下一步,每次加一,直到条件不满足

j从0开始,判断j是否<n+1,,进入下一步,每次加一,直到条件不满足

a[i][j]等于j+i

输出op的值

j从0开始,输出a[0][j]进入下一步,每次加一,直到条件不满足

换行

从1开始,判断i是否<n+1,,进入下一步,每次加一,直到条件不满足

j从0开始,判断j是否<n+1,,进入下一步,每次加一,直到条件不满足

输出a[i][j]的值并且换行

3.代码截图



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



本题要求每行最后一个数值后面没有空格直接换行,且占四列,我用了空格,后来改为3个空格,才明白四列是3个空格。

题目3:7-9 判断上三角矩阵

1. 本题PTA提交列表



2. 设计思路

定义变量T,n,i,j,k,a[][]

输入T的值

i从0开始,每次加1,输入n的值,直到i==repeat结束循环

j从0开始,每次加1,进入下一步,直到i==nt结束循环

i从0开始,每次加1,输入a[i]的值,直到i==n结束循环

输入a[i][j]的值

调用函数s=arrange(a,n);

如果s=1,则输出Yes,否则输出No

定义变量ijs

i从0开始,每次加1,进入,直到i==n结束循环

j从0开始,每次加1,进入下一步,直到i==nt结束循环

如果a[i][j]不等于0,s=0,跳出这个循环

return s

3.代码截图



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





刚开始以为是下面哪个部分错误,就从下往上一个个注释掉,后来才发现是scanf后面加了一个换行符号的错误。

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



三、同学代码结对互评

杰伟的代码





我的代码



1.我和他代码不同的是对于加法的求和我是发现规律来求的a[i][j]=j+i; 他是用a[k][m]=a[0][k]+a[m][0];,他的这个方法适应性更强

2对于输出我用空格相对来说比他更简洁,代码量更少,用-4d考虑的因素太多了,更容易出错

四、本周学习总结

1.你学会了什么?

我学会了用rand实现计算机“自己”产生数字

我学会了用gets(),输入

1 C中如何存储字符串?

2.使用字符数组存;

2.使用字符指针存储字符串

1.2 字符串的结束标志是什么,为什么要结束标志?

‘0’

使字符串正常结束

1.3 字符串输入有哪几种方法?

scanf("%s",a);

scanf("%c",p);

gets(a);

1.4 数字字符怎么转整数,写个伪代码?

定义一个整数形变量i,和字符形变量j

i等于j-字符0+0

1.5 16进制、二进制字符串如何转10进制?写伪代码?

16进制转成10进制

定义一个变量number为0,数组a[]

将16进制的字符串依次输入到a[i]中

i从0开始,每次加1,进行下一步,直到a[i]==0结束循环

如果a[i]在0到9之间,number=number16+a[i]

如果a[i]在a到f之间,number=number16+a[i]-‘a’+a

如果a[i]在A到F之间,number=number*16+a[i]-‘A’+A

输出number

二进制转成10进制

定义一个变量number为0,数组a[]

将12进制的字符串依次输入到a[i]中

i从0开始,每次加1,进行下一步,直到a[i]==0结束循环

number=number*2+a[i]

输出number

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

对于这个题目一点思路都没有


*对于这个题目不理解题意,导致课堂派的这道题完全不会填


对于gets(a),scanf(“%s”,a)运用不太熟悉

3.期中考试小结

33.1 你认为为什么没考好?

首先是我对于10进制2进制16进制的相互转换不是很熟悉

对于表达式中的位运算,等号表达式,逗号表达式,逻辑表达式不会

写代码字写的差,没有注释,看起来很不美观

33.2 罗列错题。

比如期中考试卷的单选题的第4道题,


字节:8个二进制位构成1个"字节(Byte)",它是存储空间的基本计量单位。

目前广泛使用的Pentium机,其字长为32

因为每个字节byte是8个bit

这道题做错是不懂于字节的概念

比如填空题


Total = 10

对于这道题我错误在于没有加上空格

比如改错题


n++改为n=n+2没有改出来

由于对于这道题的算法没有搞清楚,所以错误了

比如编程题


就是对于一元二次方程的x=[+ -(b^2-4ac)^(1/2)-b]/2a这个不会导致x1,x2没办法写出代码,把这个式子添加进去就正确了

3.3 下半学期要怎么调整C的学习?

我觉得我应该做好预习工作,改正我对课堂派不认真的态度。

在做pta应该要多花时间,不应该在一道题上纠结一天的时间,提高效率。

在老师讲完后,应该要回顾自己还不理解的地方,把它解决掉,在博客作业总结自己的一个星期学会与不会的内容。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: