一、PTA实验作业

题目1:7-3 出生年

1. 本题PTA提交列表

2. 设计思路

  • 1、声明一个函数different()用来计算一个年份的不同数字个数
  • 2、定义y(y是来计算符合要求的年份的量),n(n为题目要求的不同数字个数),x(x用来存放起始年份),flag(flag是用来表示每个y值中的不同数字个数的量)
  • 3、输入起始年份y和题目要求的n
  • 4、x=y(存放起始年份)
  • 5、do {flag计算y中不同数字个数;如果flag=n,符合题意,输出相应结果,并结束循环;如果不符合,y自增一}while(1)
  • 6、对函数different(y)定义:
  • 首先定义一个数组a[4]和不同数字个数count等于4;
  • a[4]存放y的每一位;
  • for(int i=0;i<4;i++) {for(int j=i+1;j<4;j++)如果a[i]=a[j,count减一,结束j的循环;
  • 函数结果返回count

    3.代码截图



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

  • 1、题目要求不足4位的年份要在前面补零,一开始不知道这个要怎么输出,百度后明白了只要输出中使用%04d就能使不足的前面补零
  • 2、函数中j的循环内,如果a[i]=a[j,count减一,就要立刻结束j的循环;我漏了结束循环,使得在年份不是四位的情况下,count会被多减少好几次

    题目2:7-7 找鞍点

    1. 本题PTA提交列表

2. 设计思路

  • 1、定义二维数组a[6][6]和n
  • 2、输入n
  • 3、 for(i=0; i<n; i++) for(j=0; j<n; j++) { scanf("%d",&a[i][j]); } 输入二维数组
  • 3、定义k=0,q=0,p=0(k,q,p都是下面循环要使用的),flag=1(flag是来判断鞍点存不存在的)
  • 4、for(i=0; i<n; i++) { q=i(下面需要用来判断此行最大值是不是列所在最小值); 。。。。。。}
  • 5、 for(p=0; p<n; p++) { if(a[i][k]<=a[i][p]) //数组元素之间比较,若比a[i][k]大,则将数组列标赋给k k=p; } } 这里找出行最大值,并将该最大值所在列的值赋给k,以便进行下一步行最小值的查找
  • 6、for(j=0; j
  • 7、找到后只需比较i和j是否相等,相等则说明此行最大值是列所在最小值,让flag等于0,结束循环
  • 8、if(flag==0) 输出结果 else 输出none

3.代码截图



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

  • 1、循环最开始,必须让q=i,否则鞍点在最后一个时就会发生错误
  • 2、这里循环有点多,我经常输出错误后更改代码不小心把某些循环的大括号删了,导致编译错误= =

    题目3:7-10 杨辉三角

    1. 本题PTA提交列表

2. 设计思路

  • 1、定义数组a[10][10].i,j,n
  • 2、输入n
  • 3、for(i=0;i<10;i++) 将行头及对角线中存入1(a[i][i]=a[i][0]=1)
  • 4、for(i=2;i<n;i++){for(j=1;j<i;j++){}a[i][j]=a[i-1][j-1]+a[i-1][j];//将第三行起的数存入 } }存入第三行起除对角线外的所有数
  • 5、输出数组

    3.代码截图

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

  • 1、我一开始j用的是小于等于i,结果把对角线上的数改变了
  • 2、第一次做的时候忘了换行,输出结果错误

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

三、同学代码结对互评

1.互评同学名称

李于程

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

  • 我的代码

  • 于程同学代码

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

  • 于程同学是通过使用一个变量diff来进行累加,而我是将为1的元素先赋值好,然后中间的数用规律对数组进行加法得到
  • 我可能会更喜欢于程同学的代码,因为其代码比较短,用到的循环较少(我个人循环较多时容易乱)

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

1.你学会了什么?

1.1 C中如何存储字符串?

  • 使用字符数组储存字符串

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

  • 结束标志为‘\0'
  • 结束标志是用来判断是否结束循环的

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

  • 1、直接输入,如a[5]={"happy};
  • 2、使用scanf函数,格式控制为%s,输入参数为字符数组名,遇回车或空格结束
  • 3、使用gets函数,输入参数为字符数组名,遇回车结束

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

  • 1、数字单个转换:数字字符-‘0’
  • 2、多位转换:
  • 1.定义循环变量i,sum=0
  • 2.i=0
  • 3.while(a[i]!=‘\0‘) sum=sum*10+(a[i]-‘0‘)
  • 4.i++

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

  • 1、16进制
  • 1.定义循环变量i,sum=0
  • 2.i=0
  • 3.while(a[i]!=‘\0‘)if(a[i]是数字字符)sum=sum16+(a[i]-‘0‘) if(a[i]是A-F)sum=sum16+(a[i]-‘A‘+10) if(a[i]是a-f) sum=sum*16+(a[i]-‘a‘+10)
  • 4.i++
  • 2、2进制
  • 1.定义循环变量i,sum=0
  • 2.i=0
  • 3.while(a[i]!=‘\0‘)sum=sum*2+(a[i]-‘0‘)
  • 4.i++

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

  • 1、虽然基本掌握了数组,但对其运用并不熟练
  • 2、数组的运用经常要使用很多循环,导致我经常将循环的量搞混(即使有注释也经常没注意到= =)
  • 3、虽然能够理解排序法,但对于它的应用不够熟练

    3.期中考试小结

    3.1 你认为为什么没考好?

  • 1、我的选择题只得了8分,这说明我基础知识掌握不够扎实,要多看课本,加强对基本知识的了解和掌控
  • 2、我的改错也不是很好,主要是一些逻辑错误看得出来,却不知道怎么修改,这一点我认为应该只有通过多做题增加经验来解决
  • 3、编程题我做得尚可,但在一些涉及数学公式的因果应用上,我容易突然短路(例如其中编程第二题,我做的时候居然忘了怎么解x了= =),我想这可能有心理因素的原因,或许是几个月没经历过考试有点紧张了,这一点要尽力克服
  • 4、填写代码的题目虽然做得可以,但一些简单的地方却错了,这是不应该的,究其原因,我认为还是基础的问题,要多回归课本,掌握好最简单的知识

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

  • 1、选择题:

第一题我题目意思理解错误,我以为他问的是C语言可以输出的数的进制位= =

  • 2、填空题:

第七空为ch=getchar(),我只写了ch,这是我没把上课内容充分理解的原因,以后上完课我应该进行复习

  • 3、改错题:

改错比较尴尬,因为我知道它错了,错在哪,却不知道怎么改,我认为这是因为我阅读程序能力不够的原因,以后我要多读程序,学会看程序

  • 4、编程题:

编程题其他两题我做得不错,这一题我也知道怎么做,但是可能考试比较紧张了,我忘了怎么求x的值了= =,考试时时间比较紧迫,就没仔细去想,希望下次做题能够保持头脑清晰,不要着急

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

  • 1、基础知识要先掌握好,即课本的内容先精通,再来谈更进一步的深奥内容
  • 2、通过期中,我明白了c的学习不只是pta上做编程题而已,一些基础的理论的简单知识也要明白
  • 3、下半学期,要在搞好基础知识的情况下,将这些知识运用于编程中

C语言二维数组作业的更多相关文章

  1. c语言二维数组传递

    c语言二维数组传递,目前我总结三种方法,以及纠正一个不能使用的方法 /********************************* * 方法1: 第一维的长度可以不指定 * * 但必须指定第二维 ...

  2. 关于c语言二维数组与指针的个人理解及处理办法。

    相信大家在学习C语言时,对一维数组和指针的理解应该是自信的,但是,我在学习过程中,看到网上一些博文,发现即便是参加工作的一些专业编程人员,突然碰到二维数组和指针的问题时,也可能会遇到难以处理的诡异问题 ...

  3. C语言 二维数组复制、清零及打印显示

    #include <stdlib.h> #include <stdio.h> #include <string.h> //二维整型数组打印显示 ],int row, ...

  4. C语言 二维数组(指针)动态分配和释放(转)

    C 二维数组(指针)动态分配和释放 先明确下概念: 所谓32位处理器就是一次只能处理32位,也就是4个字节的数据,而64位处理器一次就能处理64位,即8个字节的数据.如果我们将总长128位的指令分别按 ...

  5. C语言二维数组

    上节讲解的数组可以看作是一行连续的数据,只有一个下标,称为一维数组.在实际问题中有很多数据是二维的或多维的,因此C语言允许构造多维数组.多维数组元素有多个下标,以确定它在数组中的位置.本节只介绍二维数 ...

  6. C语言二维数组作为函数参数

    设有整型二维数组a[3][4]如下:0   1   2   34   5   6   78   9  10  11 它的定义为:    int a[3][4]={{0,1,2,3},{4,5,6,7} ...

  7. C语言二维数组作为函数的参数

    前言:今天在实现装配线调度程序时候,用到了二维数组,并将其作为函数的参数.在写程序的时候,遇到一些问题,即二维数组做函数的参数应该如何正确表示.我写程序的错误如下程序所示: #include < ...

  8. 网络1712--c语言一二维数组作业总结

    1.成绩摆前头 1.1基本要求(1分) 按时交 - 有分 未交 - 0分 迟交一周以上 - 倒扣本次作业分数 抄袭 - 0分 泛泛而谈(最多七分) 1.2评分要点 PTA作业总结(4分) 同学代码互评 ...

  9. C语言二维数组实现扫雷游戏

    #include<stdio.h> //使用二维数组实现 扫雷 int main() { char ui[8][8]={ '+','+','+','+','+','+','+','+', ...

随机推荐

  1. Java 第六章

    第六章 for语法:for(表达式①;表达式②;表达式③){ //④循环操作}表达式含义:表达式1:赋值语句, 它用来给循环变量赋初值 例如:int i = 1;表达式2:循环条件,一个关系表达式, ...

  2. 原生js简单调用百度翻译API实现的翻译工具

    先来个在线demo: js翻译工具 或者百度搜索js简单调用百度翻译API工具(不过有个小小的界面显示bug,我想细心的人应该会发现) 或者直接前往该网址:js翻译工具 或者前往我的github:gi ...

  3. ubuntu安装pycharm桌面快捷方式

    1.sudo gedit /usr/share/applications/Pycharm.desktop 2.输入 [Desktop Entry] Encoding=UTF-8 Name=Pychar ...

  4. zookeeper选举

    什么时候开始进行选举 1.服务器初始化启动的时候2.服务器运行期间连接不上leader的时候 初始化选举过程 进行leader选举至少需要两台服务器,我们这里举例为5台服务器(1,2,3,4,5)1. ...

  5. 使用myeclipse出现中文乱码的情况以及解决办法

    一:在jsp页面使用中文在浏览器中显示的时候出现乱码,解决问题的办法: 1)直接在<mete>标签中修改charset属性为"utf-8"或者为"gb2312 ...

  6. 【BZOJ2820】YY的GCD(莫比乌斯反演)

    [BZOJ2820]YY的GCD(莫比乌斯反演) 题面 讨厌权限题!!!提供洛谷题面 题解 单次询问\(O(n)\)是做过的一模一样的题目 但是现在很显然不行了, 于是继续推 \[ans=\sum_{ ...

  7. 剑指offer-(20)包含min函数的栈

    题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数. 题目分析 首先一开始我们分析得到最小值肯定要比较嘛,和栈里面的数据一一比较,但是栈这种数据结构,你又只能和栈顶弹出来的 ...

  8. 数据分析之Pandas和Numpy学习笔记(持续更新)<1>

    pandas and numpy notebook        最近工作交接,整理电脑资料时看到了之前的基于Jupyter学习数据分析相关模块学习笔记.想着拿出来分享一下,可是Jupyter导出来h ...

  9. js操作DOM元素

    创建 document.createElement() 查找 document.getElementById()   返回对拥有指定 id 的第一个对象的引用. document.getElement ...

  10. .Net Core 2.0+ InfluxDB+Grafana+App Metrics 实现跨平台的实时性能监控

    最近这段时间一直在忙,没时间写博客,负责了一个项目,从前端到后端一直忙,同时还有其他第几个项目的系统架构要处理. 去年就开始关注net core了,只是平时写写demo,没用在项目中,正好这次机会就用 ...