C语言第七次博客作业--一二维数组
一、PTA实验作业
题目1:找鞍点
1. 本题PTA提交列表
2. 设计思路
定义n,i,j,ii,jj,a[7][7],flag,max
输入n
for i=0 to i=n
for j=0 to j=n
读入二维数组 end
for i=0 to i=n max=0,flag=1
for j=0 to j=n
if a[i][j]大于max max=a[i][j]
jj=j记录下这一列
end
for ii=0 to ii=n
if max大于a[i][j] flag=0 break
end
if flag等于1 输出鞍点位置 break
end
if flag等于0 输出没有鞍点
3.代码截图
4..本题调试过程碰到问题及PTA提交列表情况说明。
- 部分正确 :最大规模,有并列极值
- 调试过程:
解决办法:将寻找某行最大值的条件都改为>=
题目2:加法口诀表
1. 本题PTA提交列表
2. 设计思路
定义repeat,num,a[10][10],i,j,n
读入repeat次数
for num=1 to num=repeat
读入n
for i=1 to i>n
a[i][0]=a[0][i]=i 对第一列第一行赋值 end
for i=0 to i>n
for j=0 to j>i
a[i][j]=i+j 对其他行和列赋值 end
for i=0 to i>n
if i==0 输出+
for j=1 to j>n 输出第一行 end
else
for j=0 to j>n 输出其他行 end
换行 end
做repeat次 end
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
- 格式错误 :
- 解决方法:用if控制每行最后一个数字的输出为%d
题目3:杨辉三角
1. 本题PTA提交列表
2. 设计思路
定义n,i,j,a[10][10]
读入行数n
for i=0 to i=n
a[i][0]=a[0][i]=1 end
for i=2 to i=n
for j=1 to j=i
a[i][j]=a[i-1][j-1]+a[i-1][j] end
for i=0 to i=n
for j=0 to j=i+1
输出a[i][j] end
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
- 答案错误 :刚开始没找到杨辉三角的规律,后来发现每一项上它上面两项之和。
二、截图本周题目集的PTA最后排名。
三、同学代码结对互评(1分)
1.互评同学名称
马艺芳
2.我的代码、互评同学代码截图
马艺芳
我的
3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。
- 马艺芳同学的代码:
优点:
1.在计算不同数的个数时,利用了数组b[a[j]]观察,并用if判断b[某]>0,不同的数就增加一。他b[a[j]]++真的惊艳到我。
2.他在输出时利用%04d,表示输出至少4位,不足则在左边补0.巧妙地解决了不足补0的问题。
缺点:
他在算年份各位数时很麻烦,对数组a一个一个赋值,我建议使用for循环,类似于之前拆分整数的题目。而且for循环比while更加直接清楚,对sum和数组b的清0也可以放循环刚开始。
- 我的代码:
虽然计算年份各位数的那部分比他简洁,但是到后面如何找不同数的个数时我就混乱了,我想到了第2题求整数序列中出现次数最多的数,然而发现用了这个以后导致后面判断条件不好写,很复杂。
结合两个代码的进化版:
四、本周学习总结(3分)
1.你学会了什么?
1.1 C中如何存储字符串?
将它作为一个特殊的一维字符数组来处理,
static char s [6] = {'H','a','p','p','y','\0'};
static char s [6] = {"Happy"};
static char s [6] = "Happy";
1.2 字符串的结束标志是什么,为什么要结束标志?
结束标志为‘\0'。
C系统在用字符数组存储字符串常量时会自动加一个‘ \ 0 ’ 作为结束符。例如“C program”共有9个字符。字符串是存放在一维数组中的,在数组中他占10个字节,最后一个字节‘\0'是系统自动加上的。
有个结束标志‘\0'后,字符数组的长度就显得不那么重要了。在程序中往往依靠检测‘\0'的位置来判定字符串是否结束,而不是根据数组的长度来决定字符串的长度。
1.3 字符串输入有哪几种方法?
scanf("%s",a);
使用scanf("%s",&s);函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理
gets(a);
gets()函数用来从输入中读取字符串直到换行符结束,但换行符会被丢弃,然后在末尾添加'\0'字符。即gets()函数将接收输入的整个字符串直到遇到换行为止。
1.4 数字字符怎么转整数,写个伪代码?
直接使用改字符减去字符0即可,如:'1'-'0'
定义number=0,数组a[i]
读入数组a
for i=0 to a[i]!='\0'
if( a[i]介于'0'和'9'之间 )
number+=number-‘0’
i++
end
1.5 16进制、二进制字符串如何转10进制?写伪代码?
- 十六转十
定义number=0,数组a[i]
读入数组a
for i=0 to a[i]!='\0'
if( a[i]介于'0'和'9'之间 )
number=number*16+number-‘0’
if( a[i]介于'a'和'f'之间 )
number=number*16+number-‘a’+10
if( a[i]介于'A'和'F'之间 )
number=number*16+number- 'A' +10
i++
end
- 二转十
定义number=0,数组a[i]
读入数组a
for i=0 to a[i]!='\0'
number=number*2+a[i]-'0'
i++
end
2.本周的内容,你还不会什么?
- PTA:
第三题出生年:数组a存放年份里的数字,数组b存放a数组里每个数字在a中的出现次数,到这里类似于第二题求整数数列中出现次数最多的数,但是到了对最后的判断时很晕,最后一个测试点过不去。不知道怎么考虑条件。
参考了同学代码后已解决:
课堂派:
学会了产生随机数
srand(NULL)
rand()%m+n;
%m求余则能取到0到m间的随机数
3.期中考试小结
3.1 你认为为什么没考好?
基础选择题花费时间长,而且正确率低,分析程序题也是小错误多,忽略了很多细节。后面编程题由于时间紧,写的没有结构性,自己拿回来再看一遍都看不大明白当时的思路。
3.2 罗列错题。
请在选择题、填空题、改错题、编程题分别举一题说明为什么错了,怎么改?
3.3 下半学期要怎么调整C的学习?
1.还是要多多敲代码,尤其是课本上的例题,很多的经典做法,不然自己总是一直用笨方法解题,费时费力。
2.多把时间放在pta上,博客作业就平时积累着写,不能总是堆到一起写。
3.运算符那一节在返回去看看,虽然平时很少会用到,但是考试会考到相关知识。
4.自己手写代码问题很大,结构不明显,小错误多。以后做题会试着手写出重要部分。
C语言第七次博客作业--一二维数组的更多相关文章
- C语言博客作业—一二维数组
一.PTA实验作业 题目1:7-2 求整数序列中出现次数最多的数 1. 本题PTA提交列表 2. 设计思路 Begin 输入整数个数N 定义数组a[N] 输入数组a for(i 0 to N-1){/ ...
- C语言博客作业--一二维数组。
一.PTA实验作业 题目1:7-1 将数组中的数逆序存放 1. 本题PTA提交列表 2. 设计思路 定义三个整型变量n用来存放整数个数i,j是循环数 scanf("%d",& ...
- C语言博客作业--一二维数组
一.PTA实验作业 题目1(7-6) (1).本题PTA提交列表 (2)设计思路 //天数n:数组下标i:小时数h,分钟数m:对应书号的标签数组flag[1001] //总阅读时间sum初始化为0,借 ...
- C语言博客作业一二维数组
一.PTA实验作业 题目1.7-5 数组循环左移 1.本题PTA提交列表 2.设计思路 定义变量a[100]存放整数,整数n,整数m,change作为交换数组的媒介,j,i作为循环的变量 输入整数n, ...
- 第七周博客作业 <西北师范大学| 周安伟>
第七周博客作业 助教博客链接:https://home.cnblogs.com/u/zaw-315/ 本周无评作业 查看了同学们提交的对实验四的附加实验项目互评.其中对博文结构,内容来评价是否符合作业 ...
- C语言最后一次博客作业
1.当初你是如何做出选择计算机专业的决定的? 一开始选专业的时候,说实话我很纠结也很迷茫,对我来说,中学时代,似乎就只要考好试,做好题就可以了,对于未来想要做啥并没有那么多的规划和想法,偶尔跟基友畅聊 ...
- 第七周博客作业<西北师范大学|李晓婷>
1.助教博客链接:https://home.cnblogs.com/u/lxt-/ 2.本周应批作业0,实批作业0. 3.本周小结:本周我们助教开始准备团队项目题目,下周三之前将会进行作业提交.
- C语言第六周博客作业--数据类型
一.PTA实验作业 题目1: 7-6 掉入陷阱的数字 1. 本题PTA提交列表 2.设计思路 定义变量N,i,g=1表示位数,a表示各位数字相加的和,b=0,j,N1,c,d用于储存N do{ for ...
- C语言第六次博客作业--数据类型
一.PTA实验作业 题目1:区位码输入法 1. 本题PTA提交列表 2. 设计思路 (1)定义整型变量code放区位码,areacode放区码,digitcode放位码,one放个位数,two放十位数 ...
随机推荐
- 网站入住各大搜索引擎的seo优化技巧
最近在公司上班的时候做了一个工业物联网的项目,上层主管提出要求,让这个网站入住各大搜索引擎,也就是说在各大搜索引擎中输入与网站相关的关键字就能搜索到我们自己的网站.刚开始自己一脸懵逼,因为之前自己并没 ...
- 在wamp中添加php新版本
新的公司,要求用php5.3,只记得PHP出到7了,5.3不知道是之前什么时候的了呢.不过公司要求,照办就是. 从网上看了看教程,挺简单的,就是5.3的php资源的寻找.找到了,存到了自己云盘,嘿嘿, ...
- 阻止微信浏览器/QQ浏览器长按弹框“在浏览器打开”
这个弹框实际上等同于PC环境下的鼠标右键的弹框,因此只要禁止页面的弹框事件就能完美屏蔽该弹框对我们功能带来的影响.程序代码如下: document.oncontextmenu=function(e){ ...
- 相位噪声 dBc/Hz
相位噪声和抖动是对同一种现象的两种不同的定量方式.在理想情况下,一个频率固定的完美的脉冲信号(以1 MHz为例)的持续时间应该恰好是1微秒,每500ns有一个跳变沿.但不幸的是,这种信号并不存在.如图 ...
- MyEclipse完善提示配置
MyEclipse完善提示配置 一般的,MyEclipse中的提示以"."后进行提示,不是很完善.现在,修改提示配置,让提示更完善! 具体操作如下: 1.打开MyEclipse,单 ...
- (十七)java冒泡排序和compareto
java中的排序有:冒泡排序.快速排序.选择排序.插入排序和希尔排序,还有基数排序.鸡尾酒排序.桶排序.鸽巢排序.归并排序等. 冒泡排序法:利用双重for循环,重复走访要排序的数列,两两比较大 ...
- Linux显示各栏位的标题信息列
Linux显示各栏位的标题信息列 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ who -H 名称 线路 时间 备注 youhaidong :0 2015-0 ...
- 关于vue-axios的post方式,后台无法解析传参问题
启用jq方法更改数字格式 var params = {'addid':item.addid}; var str = $.param(params);
- arttemplate与webpack的应用
模板渲染使用arttemplate,使用方法如下: 普通使用 普通使用把渲染模板写在<script>标签里面,引入arttemplate.js,从服务端接收数据(数组与对象的形式),然后调 ...
- css设置居中的方案总结
回想一下,自己平时项目里遇到的比较多的就是css如何让元素居中显示,其实差不多每种情况都遇到过,所采用的方法也都各有利弊,下面对这些方法来做个概括,对其中的坑点,也会一一指出来,希望能给遇到问题的同学 ...