一、PTA实验作业

题目1:找鞍点

1. 本题PTA提交列表

2. 设计思路

  1. 定义n,i,j,ii,jj,a[7][7],flag,max
  2. 输入n
  3. for i=0 to i=n
  4. for j=0 to j=n
  5. 读入二维数组 end
  6. for i=0 to i=n max=0,flag=1
  7. for j=0 to j=n
  8. if a[i][j]大于max max=a[i][j]
  9. jj=j记录下这一列
  10. end
  11. for ii=0 to ii=n
  12. if max大于a[i][j] flag=0 break
  13. end
  14. if flag等于1 输出鞍点位置 break
  15. end
  16. if flag等于0 输出没有鞍点

3.代码截图

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

  • 部分正确 :最大规模,有并列极值

  • 调试过程:

解决办法:将寻找某行最大值的条件都改为>=

题目2:加法口诀表

1. 本题PTA提交列表

2. 设计思路

  1. 定义repeat,num,a[10][10],i,j,n
  2. 读入repeat次数
  3. for num=1 to num=repeat
  4. 读入n
  5. for i=1 to i>n
  6. a[i][0]=a[0][i]=i 对第一列第一行赋值 end
  7. for i=0 to i>n
  8. for j=0 to j>i
  9. a[i][j]=i+j 对其他行和列赋值 end
  10. for i=0 to i>n
  11. if i==0 输出+
  12. for j=1 to j>n 输出第一行 end
  13. else
  14. for j=0 to j>n 输出其他行 end
  15. 换行 end
  16. repeat end

3.代码截图

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

  • 格式错误 :
  • 解决方法:用if控制每行最后一个数字的输出为%d



题目3:杨辉三角

1. 本题PTA提交列表

2. 设计思路

  1. 定义n,i,j,a[10][10]
  2. 读入行数n
  3. for i=0 to i=n
  4. a[i][0]=a[0][i]=1 end
  5. for i=2 to i=n
  6. for j=1 to j=i
  7. a[i][j]=a[i-1][j-1]+a[i-1][j] end
  8. for i=0 to i=n
  9. for j=0 to j=i+1
  10. 输出a[i][j] end

3.代码截图

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

  • 答案错误 :刚开始没找到杨辉三角的规律,后来发现每一项上它上面两项之和。

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

三、同学代码结对互评(1分)

1.互评同学名称

马艺芳

2.我的代码、互评同学代码截图

  1. 马艺芳

  1. 我的

3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。

  • 马艺芳同学的代码:

优点:

1.在计算不同数的个数时,利用了数组b[a[j]]观察,并用if判断b[某]>0,不同的数就增加一。他b[a[j]]++真的惊艳到我。

2.他在输出时利用%04d,表示输出至少4位,不足则在左边补0.巧妙地解决了不足补0的问题。

缺点:

他在算年份各位数时很麻烦,对数组a一个一个赋值,我建议使用for循环,类似于之前拆分整数的题目。而且for循环比while更加直接清楚,对sum和数组b的清0也可以放循环刚开始。

  • 我的代码:

    虽然计算年份各位数的那部分比他简洁,但是到后面如何找不同数的个数时我就混乱了,我想到了第2题求整数序列中出现次数最多的数,然而发现用了这个以后导致后面判断条件不好写,很复杂。
  1. 结合两个代码的进化版:

四、本周学习总结(3分)

1.你学会了什么?

1.1 C中如何存储字符串?

将它作为一个特殊的一维字符数组来处理,

  1. static char s [6] = {'H','a','p','p','y','\0'};
  2. static char s [6] = {"Happy"};
  3. static char s [6] = "Happy";

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

  • 结束标志为‘\0'。

  • C系统在用字符数组存储字符串常量时会自动加一个‘ \ 0 ’ 作为结束符。例如“C program”共有9个字符。字符串是存放在一维数组中的,在数组中他占10个字节,最后一个字节‘\0'是系统自动加上的。

  • 有个结束标志‘\0'后,字符数组的长度就显得不那么重要了。在程序中往往依靠检测‘\0'的位置来判定字符串是否结束,而不是根据数组的长度来决定字符串的长度。

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

  1. scanf("%s",a);

使用scanf("%s",&s);函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理

  1. gets(a);

gets()函数用来从输入中读取字符串直到换行符结束,但换行符会被丢弃,然后在末尾添加'\0'字符。即gets()函数将接收输入的整个字符串直到遇到换行为止。

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

直接使用改字符减去字符0即可,如:'1'-'0'

  1. 定义number=0,数组a[i]
  2. 读入数组a
  3. for i=0 to a[i]!='\0'
  4. if( a[i]介于'0''9'之间
  5. number+=number-‘0
  6. i++
  7. end

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

  • 十六转十
  1. 定义number=0,数组a[i]
  2. 读入数组a
  3. for i=0 to a[i]!='\0'
  4. if( a[i]介于'0''9'之间
  5. number=number*16+number-‘0
  6. if( a[i]介于'a''f'之间
  7. number=number*16+number-‘a’+10
  8. if( a[i]介于'A''F'之间
  9. number=number*16+number- 'A' +10
  10. i++
  11. end
  • 二转十
  1. 定义number=0,数组a[i]
  2. 读入数组a
  3. for i=0 to a[i]!='\0'
  4. number=number*2+a[i]-'0'
  5. i++
  6. end

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

  • PTA:

    第三题出生年:数组a存放年份里的数字,数组b存放a数组里每个数字在a中的出现次数,到这里类似于第二题求整数数列中出现次数最多的数,但是到了对最后的判断时很晕,最后一个测试点过不去。不知道怎么考虑条件。

参考了同学代码后已解决:

  • 课堂派:

  • 学会了产生随机数

  1. srand(NULL)
  2. rand()%m+n;

%m求余则能取到0到m间的随机数

3.期中考试小结

3.1 你认为为什么没考好?

基础选择题花费时间长,而且正确率低,分析程序题也是小错误多,忽略了很多细节。后面编程题由于时间紧,写的没有结构性,自己拿回来再看一遍都看不大明白当时的思路。

3.2 罗列错题。

请在选择题、填空题、改错题、编程题分别举一题说明为什么错了,怎么改?

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

1.还是要多多敲代码,尤其是课本上的例题,很多的经典做法,不然自己总是一直用笨方法解题,费时费力。

2.多把时间放在pta上,博客作业就平时积累着写,不能总是堆到一起写。

3.运算符那一节在返回去看看,虽然平时很少会用到,但是考试会考到相关知识。

4.自己手写代码问题很大,结构不明显,小错误多。以后做题会试着手写出重要部分。

C语言第七次博客作业--一二维数组的更多相关文章

  1. C语言博客作业—一二维数组

    一.PTA实验作业 题目1:7-2 求整数序列中出现次数最多的数 1. 本题PTA提交列表 2. 设计思路 Begin 输入整数个数N 定义数组a[N] 输入数组a for(i 0 to N-1){/ ...

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

    一.PTA实验作业 题目1:7-1 将数组中的数逆序存放 1. 本题PTA提交列表 2. 设计思路 定义三个整型变量n用来存放整数个数i,j是循环数 scanf("%d",& ...

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

    一.PTA实验作业 题目1(7-6) (1).本题PTA提交列表 (2)设计思路 //天数n:数组下标i:小时数h,分钟数m:对应书号的标签数组flag[1001] //总阅读时间sum初始化为0,借 ...

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

    一.PTA实验作业 题目1.7-5 数组循环左移 1.本题PTA提交列表 2.设计思路 定义变量a[100]存放整数,整数n,整数m,change作为交换数组的媒介,j,i作为循环的变量 输入整数n, ...

  5. 第七周博客作业 <西北师范大学| 周安伟>

    第七周博客作业 助教博客链接:https://home.cnblogs.com/u/zaw-315/ 本周无评作业 查看了同学们提交的对实验四的附加实验项目互评.其中对博文结构,内容来评价是否符合作业 ...

  6. C语言最后一次博客作业

    1.当初你是如何做出选择计算机专业的决定的? 一开始选专业的时候,说实话我很纠结也很迷茫,对我来说,中学时代,似乎就只要考好试,做好题就可以了,对于未来想要做啥并没有那么多的规划和想法,偶尔跟基友畅聊 ...

  7. 第七周博客作业<西北师范大学|李晓婷>

    1.助教博客链接:https://home.cnblogs.com/u/lxt-/ 2.本周应批作业0,实批作业0. 3.本周小结:本周我们助教开始准备团队项目题目,下周三之前将会进行作业提交.

  8. C语言第六周博客作业--数据类型

    一.PTA实验作业 题目1: 7-6 掉入陷阱的数字 1. 本题PTA提交列表 2.设计思路 定义变量N,i,g=1表示位数,a表示各位数字相加的和,b=0,j,N1,c,d用于储存N do{ for ...

  9. C语言第六次博客作业--数据类型

    一.PTA实验作业 题目1:区位码输入法 1. 本题PTA提交列表 2. 设计思路 (1)定义整型变量code放区位码,areacode放区码,digitcode放位码,one放个位数,two放十位数 ...

随机推荐

  1. NewLife.XCode 上手指南2018版(一)代码生成

    目录 NewLife.XCode 上手指南2018版(一)代码生成 NewLife.XCode 上手指南2018版(二)增 NewLife.XCode 上手指南2018版(三)查 NewLife.XC ...

  2. eclipse hadoop1.2.0配置及wordcount运行

    "error: failure to login"问题 http://www.cnblogs.com/xia520pi/archive/2012/05/20/2510723.htm ...

  3. 使用BEM命名规范来组织CSS代码

    BEM 是 Block(块) Element(元素) Modifier(修饰器)的简称 使用BEM规范来命名CSS,组织HTML中选择器的结构,利于CSS代码的维护,使得代码结构更清晰(弊端主要是名字 ...

  4. PHPmysqli的 其他函数 从数据库中读出数据并且打印出来

    <?php // 认识其他mysqli其他函数 header( 'Content-Type:text/html;charset=utf-8 '); require 'prepareSrarmen ...

  5. (三十二)虚拟机linux系统中安装firefox浏览器

    这几天,第二轮项目迭代进入了尾声,同时也接到了上司领导交代下来的新任务,那就是要我们学习linux系统基础的知识,包括常用命令和web应用的部署问题,于是乎安装了虚拟机和linux操作系统. 我安装的 ...

  6. java中final和static

    final的意思是最终的,最后的额,不可变的,在java中也具有相似的含义. final修饰基础数据表示把该数据修饰成常量,意味着不可修改,不可变. final修饰对象的引用的时候,表示该引用不可变, ...

  7. Linux显示工作路径

    Linux显示工作路径 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ pwd /home/youhaidong

  8. linux下直接拷贝新版本R

      如果要使用新版本的R,除了直接安装,也可以直接拷贝R的文件夹.这样既可以保留原始的R版本和R包,也可以使用新版本的R和R包,R包存放在R目录下的library文件夹. 文件放路径 R: /usr/ ...

  9. C++遍历二维数组的四种方法

    #include <iostream> using std::cin; using std::cout; using std::endl; using std::string; using ...

  10. iOS - Swift Enumerations or how to annoy Tom

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...