C语言第七次博客作业--一二维数组
一、PTA实验作业
题目1:7-3 出生年
1.本题PTA提交列表
2.设计思路
定义year为年份,number存放要求不同数字个数,count计数不同数位,i,rj,n,flag,u,v。
a[4]存放年份各个位数。
输入year,number。
for i=year to.....
定义a[4]={0},j=0,n=i。
对n取余再除10,将余数r依次存入a[j++].
count=1
for u=1 to u=3
flag=1
for v=0 to v=u-1
如果a[u]=a[v] flag=0
跳出当前循环
end
end
如果flag!=0,count++
如果count==number,跳出循环。
end
输出年份和相差年份。
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
- 1.刚开始不知道如何补零
解决方法:上网查询。 - 2.在如何判断年份有几个不同数的时候,判断方法错误。
解决方法:和同学交流。
题目2:7-7 找鞍点
1.本题PTA提交列表
2.设计思路
定义n为n维数组,i,j,c,r,flag=0。
定义a[6][6]。
输入n
for i=0 to n-1
for j=0 to n-1
输入数值赋予a[i][j].
end.
for i=0 to n-1
c=0
for j=0 to j=n-1
如果a[i][j]>=a[i][c],c=j
end
r=0
for j=0 to j=n-1
如果[j][c]<=a[r][c],r=j
end
如果 i==r flag=1 跳出循环
end
如果flag==1,输出r,c。
如果flag==0,输出NONE。
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
- 1.没有考虑考虑并列极值
解决方法:将>改成>=
题目3:7-10 杨辉三角
1.本题PTA提交列表
2.设计思路
定义n存放三角的行数,i,j
输入n
定义a[10][10]
for i=0 to n-1
for j=0 to n-1
如果i==j或j==0,a[i][j]=1
否则 a[i][j]=a[i-1][j-1]+a[i-1][j]
end
end
for i=0 to n-1
for j=0 to n
输出a[i][j]
换行
end
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
- 本题没有遇到什么问题。
二、截图本周题目集的PTA最后排名
三、同学代码结对互评
7-3
郑嘉亮代码:
我的代码:
评价:我们两个在判断不同数个数的方法不同,就代码而言,他的较为简单且有注释可读性高,但我的代码也容易懂,我更喜欢我的代码。
四、本周学习总结
1.你学会了什么?
1.1 C中如何存储字符串?
- 采用字符型数组存储字符串。
1.2 字符串的结束标志是什么,为什么要结束标志?
- 结束标志:\0
原因:如果没有\0,那么在使用系统函数处理字符串的时候,函数就不能准确判断字符串在哪里结束,从而可能导致数组越界。
1.3 字符串输入有哪几种方法?
- 三种
1.使用循环结构和scanf("%c", )
2.scanf("%s", )
3.gets()
1.4 数字字符怎么转整数,写个伪代码?
- 定义字符ch存放数字字符
输出ch-'0'
1.5 16进制、二进制字符串如何转10进制?写伪代码?
- 16进制:
定义字符数组a[100]存储16进制字符串,result为转化后结果
number=0
for i=0 to a[i]'\0'
若a[i]为字符0到9,result=result16+a[i]-'0';
若a[i]为'a'到'f',result=result16+a[i]-'a'+10;
若a[i]为'A'到'F‘,result=result*16+a[i]-'A'+10;
end
输出number
2进制
定义字符数组a[100]存储2进制字符串,result为转化后结果
for i=0 to a[i]'\0'
若a[i]为字符0或1,result=result*2+a[k]-'0';
end
输出number
2.本周的内容,你还不会什么
- 对字符串的几种输入还不能很好的区别使用。
3.期中考试小结
3.1 你认为为什么没考好?
- 1.基础的概念没有熟练。
2.粗心,写反空格,把上面的抄下来抄错。
3.时间安排不当。
4.手写代码能力差,卷面不整洁。
3.2 罗列错题
- 选择题1,10,11,17。对基础概念不清晰。
选择题14,16,19。粗心看错。
选择题18。对位的移动不熟练。
分析题1。粗心抄错,且不知道函数中的输出也要执行。
编程题3,少了一个结束循环的语句。
3.3 下半学期要怎么调整C的学习?
- 将基本的知识点掌握,提高代码简洁和可读性,多学习出色的人的思考方式。