C语言博客作业--一二维数组
一、PTA实验作业
题目1:7-3 出生年
1.本题PTA提交列表
2.设计思路
定义y放年份,n放不同数字个数
输入y和n的值
for(i=0;i<4;i++)
a[i]=b%10; 把年份各个位数的数字赋值给数组a
b/=10;
for(i=0;i<4;i++){
for(j=i+1;j<4;j++)
遍历数组a,如果数字一样count减一,且跳出内循环
如果count值等于n满足题意停止循环,输出年份和相差的年份
如果不满足年份加一,其他重新赋值继续循环到满足题意,输出
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
开始输出的格式有问题,没有前导零。在输出部分进行格式的修改就可以了。
题目2:7-5 数组循环左移
1.本题PTA提交列表
2.设计思路
定义n,m放左移次数,t,j
输入n,m的值
输入数组的值
if(m>n) m=m-n
遍历数组if(i>=m) for(j=i;j>i-m;j--){ 数字两两交换移动
t=a[j-1]; 到满足题意的移动位置
a[j-1]=a[j];
a[j]=t;
for(i=0;i<n;i++){
if(i==n-1) 是数组最后的数后面不加空格,直接输出数字
else
输出对应数组数字加空格
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
提交后都是格式错误,仔细阅读题目发现格式要求。在输出加上判断条件就可以
还有一个测试点m>n的答案错误,对该情况特殊分析,赋值就满足题意了
题目3:7-7 找鞍点
1.本题PTA提交列表
2.设计思路
定义n,i,j,k,max放行的最大值,c记录行标,b记录列标
输入n的值,给数组赋值
for(j=0;j<n;j++) max赋值为每行第一个数
for(i=0;i<n;i++)
if(a[j][i]>=max){ //找出行中的最大值//
max=a[j][i];
c=j;b=i记录下下标
for(k=0;k<n;k++) 判断最大值对应的列该值是否为最小值
是:输出下标
不是:输出NONE
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
有一个错误是答案错误经过排查发现是输出的大小写与题目不符
当有两个并列的鞍点输出后面:开始在行中找最大值是用的前面比较。加上等号:a[j][i]>=max就拿的是后面那个
二、截图本周题目集的PTA最后排名。
三、同学代码结对互评
我的代码:
陈文杰代码:
评价:他的代码取各个位数的数字方法有些复杂而且只针对了特殊情况,我的较为简洁且满足一般情况
他判断不同数字每种情况分得很细,让人很清楚但篇幅太长。我用了循环中判断较为简单,稍有一些思维量
该题的做法思路其实都差不多,不同就是代码的选择格式不同。
四、本周学习总结
1.你学会了什么?
1.1 C中如何存储字符串?
c中定义字符型数组存储字符串
1.2 字符串的结束标志是什么,为什么要结束标志?
结束标志:\0
原因:如果没有\0,就不知道字符串在哪结束,导致错误。
1.3 字符串输入有哪几种方法?
- 1.使用循环结构和scanf("%c", )语句输入
- 2.scanf("%s", )遇到空格就会中止
- 3.gets()这种方法只有遇回车会终止
- 4.getchar()输入单个字符
1.4 数字字符怎么转整数,写个伪代码?
定义字符ch存放数字字符
输出ch-'0'
1.5 16进制、二进制字符串如何转10进制?写伪代码?
####16进制:
定义字符数组a[100]放16进制字符串,result放转化后的结果
输入数组的值
for 第一位to最后一位
若a[]为字符0到9,result=result*16+a[k]-'0';
若a[]为a到f或A到F,result=result*16+a[k]-'a'或'A'+10;
输出结果
####2进制
定义字符数组a[100]存储16进制字符串,result放转化后的结果
输入数组得值
for 第一位to最后一位
若a[]为字符0或1,result=result*2+a[k]-'0';
输出结果
2.本周的内容,你还不会什么?
- 预习作业的题目有些是拿到dev-c中运行得到的答案,自己去分析会经常出错。
循环条件的判断也经常出现一些错误,已经找到思路但错在这一步。
3.期中考试小结
3.期中考试小结
- 1.对于时间的把握有一些问题,留给编程题的时间有些紧。导致这部分做得不好。
- 2.审题不太认真,看错题目甚至曲解了题意导致自己在那边浪费时间。
- 3.基础得一些知识也有一些漏洞,丢掉了一些分
- 4.代码得写法不够扎实,有些明显的错误。
3.2 罗列错题。
基础知识掌握得不够扎实
代码的写法不够扎实
3.3 下半学期要怎么调整C的学习?
预习更认真一些,把基础打得更扎实一点
pta的题多去练练
多看看别人的代码,提高自己的代码阅读和编写能力