C语言博客作业—数组
一、PTA实验作业
题目1:简化的插入排序
1. 本题PTA提交列表

2. 设计思路
(1)定义n,number,i,j,temp;
(2)输入n;
(3)定义数组a[n+1]; //把所有的数都放入数组中
(4)for(i=0;i<n;i++){
输入number;
a[i]=number;
}
(5)输入要插入的数(a[n]);
保留a[n]的值;
(6)for(j=0;j<n;j++){ //找出temp的位置
if(temp<a[j])
结束循环;
}
(7)for(i=n;i>j;i--)
a[i]=a[i-1];
(8)要插入的数为a[j];
(9)for(i=0;i<n+1;i++)
输出数组;
3.代码截图。

4.本题调试过程碰到问题及PTA提交列表情况说明。
还没有输入要插入的数就已经将原数组输出了; 改正后要插入的数插入位置没错,但是值被改变了;

经过调试发现赋值语句出错,导致要插入的数被更改成前一个比它小的数的值;

用另一个数来存放这个要插入的数即可。
题目2:加法口诀表
1. 本题PTA提交列表


2. 设计思路
(1)定义四个循环变量i,j,k,N,n为正整数,repeat为计算次数;
(2)输入repeat;
(3)for(N=1;N小于等于repeat;N++){
输入n; 输出‘+’;
定义 b[i], j=0;
(4) for(i=0;i小于n;i++){ //把数存放在b[]中,
b[i]=1到n(++j可以实现)
if(i<n-1) 输出右4空b[ i ];
if(i==n-1) 直接输出b[ i ]并换行;
}
(5) for(i=0;i小于n;i++){ //每一行的输出规律
令k=b[i];
printf("%-4d",k);
for(j=1;j<=i+1;j++){
if(j<i+1) printf("%-4d",++k);
if(j==i+1) printf("%d\n",++k);
}
}
}
3.代码截图。

4.本题调试过程碰到问题及PTA提交列表情况说明。
- 本题刚开始的思路其实不是这个样子,本来用了一个二维数组,后来发现规律比较简单,可用一个一维数组完成;刚开始漏掉了reapeat,而调试时repeat一直用1没注意到,所以即使输出结果一样但是结果错误;

- 改成一维数组时有些条件什么的乱掉了,导致之后列项的b[ i ]一直都是1,调试发现用于条件问题执行过程中跳过了一个if 语句导致了b[ i ]的值出错。

题目3: 杨辉三角
1. 本题PTA提交列表

2. 设计思路
(1)定义number用于计算a[i][j]的值;
(2)输入n;
(3)if(n<10){ (当输入的n符合条件时)
(4) 定义二维数组 a[n][n];
(5) for(i=0;i<n;i++){
for(j=0;j<=i;j++){ (按条件输出a[i][j])
if(i>=1且j>=1)
计算number的值;
if(j==0或j==i)
第一列和i=j时都为1时,输出1;
else
输出number;
按要求输出a[i][j];
}
每输完一行就换一行;
}
}
3.3.代码截图。

4.本题调试过程碰到问题及PTA提交列表情况说明。
- 第一列和i=j时都为1时,输出1没有问题;但是number的值一直出错

可能是number的表达式存在问题,没有办法正常输出值,不确定是否可以这样计算;



条件出错跳过第一个number的计算,导致接下来number的值都错了!仔细检查发现number应该从第二行开始就要进行计算,而条件是大于1的时候即从第三行开始;所以导致了number的值出错,改成大于等于1即可。
二、截图本周题目集的PTA最后排名。(2分)
PTA排名

三、同学代码结对互评(1分)
1.互评同学名称
林岑
2.我的代码、互评同学代码截图
我的代码:

同学的代码:

3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。
- 不同:我的代码:1.直接把年份递增然后放入数组中;2.分析年份各位数字的不同个数相对应的数字之间相等情况的次数,根据结果是否符合来判断是否达到要求;3.输出结果时让其自动补零;
同学的代码:1.每次判断完再改变年份重新放到数组中;2.利用嵌套循环判断年份各位数字的不同个数,达到题目要求的个数后跳出循环即可;重复执行直到满足要求;3.列出对应情况的结果,按相对应的形式输出。 - 也许自己的代码比较冗长,但是还是会更喜欢自己的代码;同学的判断方式比较快捷,我的就比较费功夫些。
四、本周学习总结(3分)
1.你学会了什么?
1.1 C中如何存储字符串?
- 初始化数组,赋值或输入。
1.2 字符串的结束标志是什么,为什么要结束标志?
- 结束标志是'\0',因为它表示空操作,无法输入;一旦输入它就表示字符串输入结束。而且由于字符串并没有明确地给出有效字符的个数,只规定在字符串结束符‘\0’之前的字符都是有效字符,一般用字符串结束符‘\0’来控制循环。
1.3 字符串输入有哪几种方法?
- 赋初值;
- 用scanf输入,字符串的格式控制说明为%s,遇到回车或空格就结束输入;
- gets():读取字符串直到换行符结束,但换行符会被丢弃,然后在末尾添加'\0'字符。
1.4 数字字符怎么转整数,写个伪代码?
举例: char b;
b='10';
输出十进制:'10'-'0';
输出:10
1.5 16进制、二进制字符串如何转10进制?写伪代码?
定义字符串转成十进制的函数:
{
定义 i,m,temp=0,n;
获得十六进制的长度为m;
for(i=0;i<m;i++)
{
if(表示的是字母)
n=s[i]-'a'+10;
else(数字)
n=s[i]-'0';
temp=temp*16+n;
}
主函数:
char s[10];
输入字符串;
调用函数;
输出结果;
2.本周的内容,你还不会什么?
- 课堂派

判断字符数组的长度,刚开始并不是很明白'\0'是否包括在有效长度内;x要自己排进数组,所以需要一个结束符来结束,而y已经输入好了应该不需要加上去。 - PTA

int n,i=0,j=0,k,number,max,min,max1,max2,min1,flag=0;
scanf("%d\n",&n);
int a[n][n];
for(i=0;i<n;i++) //输入各个元素的初值
for(j=0;j<n;j++){
scanf("%d",&number);
a[i][j]=number;
}
for(i=0;i<n;i++){ //遍历数组
max=a[i][0];max1=i; //该行第一列的元素为最大数
for(j=1;j<n;j++){
if(a[i][j]>max){ //找出行最大数
max2=j;
max=a[i][j];
}
}
min=a[0][max2];min1=0; //该列第一行的数为最小数
for(k=0;k<n;k++){
if(a[k][max2]<min){ //在该列找列最小数
min1=k;
min=a[k][max2];
}
}
if(max1==min1){ //当这两个数是同一个数时
printf("%d %d",min1,max2);
flag=1;
break;
}
}
if(i==n&&flag==0) //一直没找到
printf("NONE");
找鞍点的题,明明找的是行最大列最小的数,调试完还是不明白为什么结果不对。
3.期中考试小结
3.1 你认为为什么没考好?
- 复习不够认真,有些没复习到知识点已经遗忘了;平时对知识点掌握的就不够牢,课后没有花时间温习;
- 做题速度慢,写编程题的时候时间有点紧张了;
- 思路不够清晰,导致编程题得分率很低。
3.2 罗列错题。
- 选择题第六题—判断正确的C语言语句:B和C都很像正确答案,但是C结束后分号,因为细节而导致失分;
- 填空题—第七空:题意比较明确,判断输入的字符是否是换行符,但是太着急了写了个ch,却忘记了应该要不断地输入,答案是ch=getchar()。
- 改错题—第二题:这题的程序读起来比较难一点,如果没有题目的提示可能还不能完全理解题意;程序中有两个表达式错误没找出来:第一个n++,第一个分母的变化规律是n+2的阶乘,所以应改为n+=2;第二个:term的值,分母应该是(n+1)*(n+2),但是由于运算等级的关系,如果像题目那么写的话,(n+2)会变成分子!
- 编程题—第一题:随机数


不知道如何产生要求内的随机数;不过这周老师已经补充过这个知识点了。
3.3 下半学期要怎么调整C的学习?
- 多手写伪代码,一些细节和规范要注意;
- 不仅花时间打代码,还要掌握相关的知识点;
- 研究一些相关的知识,不只是单纯的局限于课堂;
- 可以看看同学的代码,既可以拓展思路;又可以提高阅读代码的能力。
C语言博客作业—数组的更多相关文章
- C语言博客作业--数组
一.PTA实验作业 题目1.求整数序列中出现次数最多的数 1.本题PTA提交列表 2.设计思路 定义整形变量n,max,count分别表示整数个数,出现次数最大值,出现次数.定义循环变量i,j. 输入 ...
- C语言博客作业6---结构体&文件
C语言博客作业6---结构体&文件 1.本章学习总结(2分) 1.1思维导图 请以思维导图总结本周的学习内容.如下图所示: 1.2.学习体会 描述本周学习感受,也可以在这里提出你不理解地方.对 ...
- C语言博客作业5--指针
C语言博客作业5--指针 1.本章学习总结(2分) 1.1思维导图 请以思维导图总结本周的学习内容,如下图所示: 1.2本章学习体会及代码量学习体会 1.2.1学习体会 描述本周学习感受,也可以在这里 ...
- C语言博客作业4--数组
C语言博客作业4--数组 1.本章学习总结 1.1思维导图 请以思维导图总结本周的学习内容,如下图所示: 1.2本章学习体会及代码量学习体会 1.2.1学习体会 描述本周学习感受,也可以在这里提出你不 ...
- C语言博客作业3--函数
C语言博客作业3--函数 1.本章学习总结 1.1思维导图 请以思维导图总结本周的学习内容,如下图所示: 1.2本章学习体会及代码量学习体会 1.2.1学习体会 描述本周学习感受,也可以在这里提出你不 ...
- C语言博客作业06——结构体&文件
C语言博客作业06--结构体&文件 1.本章学习总结 1.1思维导图 1.2.本章学习体会 在本周的学习中,我们学习了关于结构体和文件的内容.结构体的本身并不难,但以结构体为基础的链表还是让我 ...
- C语言|博客作业10
问题 回答 C语言 博客作业10 这个作业要求在哪里 作业要求 我在这个课程的目标是 熟练循环语句的用法 这个作业在哪个具体方面帮助我实现目标 pta作业 参考文献 <C语言程序设计> 1 ...
- C语言博客作业08
C语言I博客作业08](https://www.cnblogs.com/490-85-00-58-/p/11863312.html) 问题 回答 这个作业属于那个课程 C语言程序设计II 这个作业要求 ...
- C语言|博客作业12-学期总结
我学到的内容 我的收获 第一次:https://www.cnblogs.com/tongyingjun/p/11563433.html:总结:初步了解了C语言.代码.博客园和Markdown语法. 第 ...
随机推荐
- Python 第二天学习(文件的处理)
学习的内容是: python的文件处理 列表,元组,字典的使用 集合的使用 函数 文件file.textd的内容 A person with high EQ doesn't often critici ...
- JVM内存分析
1.java内存模型分析 java虚拟机运行时数据存储区域包括线程隔离和线程共享两类,整个PC的内存图如下所示: 下面对以上内存区域说明: 1.1 register和cache 当代计算机一般有多个c ...
- Python爬虫 股票数据爬取
前一篇提到了与股票数据相关的可能几种数据情况,本篇接着上篇,介绍一下多个网页的数据爬取.目标抓取平安银行(000001)从1989年~2017年的全部财务数据. 数据源分析 地址分析 http://m ...
- Android中的Socket
1. UDP (1)访问网络必须添加权限,访问网络必须添加权限,访问网络必须添加权限,重要的事情说三遍. (2)简述 UDP协议是面向报文的,简单地说,利用UDP访问网络的步骤就是"寄快递& ...
- 关于hibernate中hql语句 case when的写法
java hql case when的用法 if(null == sorter){ hql.append(" order by m.mDate desc,case when m.mealTi ...
- 金三银四,2018最新iOS面试题,由它可以搞定面试官?
序言 这些资料,你一定会用到!我相信很多人都在说,iOS行业不好了,iOS现在行情越来越难了,失业的人比找工作的人还要多.失业即相当于转行,跳槽即相当于降低自己的身价.那么做iOS开发的你,你是否在时 ...
- MySQL多数据源笔记3-分库分表理论和各种中间件
一.使用中间件的好处 使用中间件对于主读写分离新增一个从数据库节点来说,可以不用修改代码,达到新增节点数据库而不影响到代码的修改.因为如果不用中间件,那么在代码中自己是先读写分离,如果新增节点, 你进 ...
- C#封装程序集属性方法注释说明
一.使用封装程序集好处: 在很多分布式应用程序开发中,针对每一种功能可能条用的接口不一样,往往习惯将需要被调用的接口,封装成DLL给调用方应用后使用,这样既规范了调用的方式,又避免了调用出现参数请求方 ...
- OCR技术浅探:基于深度学习和语言模型的印刷文字OCR系统
作者: 苏剑林 系列博文: 科学空间 OCR技术浅探:1. 全文简述 OCR技术浅探:2. 背景与假设 OCR技术浅探:3. 特征提取(1) OCR技术浅探:3. 特征提取(2) OCR技术浅探:4. ...
- python爬微信公众号前10篇历史文章(4)-正则表达式RegularExpressionPattern
正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串.将匹配的子串替换或者从某个串中取出符合某个条件的子串等. Pytho ...