C语言博客作业—指针
一、PTA实验作业
题目1: 求出数组中最大数和次最大数
1. 本题PTA提交列表

2. 设计思路
定义max表示范围数组中的最大数(初值设为a[0]),z表示找到的元素在数组中的位置;
定义指针*b,b=a(保留数组的首地址);
for a=b to b+n-1
if(*a大于max){
保留*a,z=a-b;
}
end for
用temp交换*b与*(b+z);
max=*(b+1);
for a=b+1 to b+n-1
if(*a大于max){
保留*a,z=a-b;
}
end for
用temp交换*(b+1)与*(b+z);
返回*a
3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。
- 一开始都写不好,换了好几次思路,但是一直会把前面的几个数全部换成最大数,最后还把后面的其他元素搞混;由于无法调试,我就利用printf输出来找错误,找了很久就是无法发现问题,上一步的结果还是正确的,下一步交换完了就是错了,不知道怎么办,然后一直在改交换的那个地方的代码,因为我觉得是那里写错了才导致了值全变成十二!但是无论怎么改答案都是一样的,我开始重新找错误,发现自己在改if语句的时候多添了一个语句却没有附上大括号,,,所以说if语句的括号要小心点。


- 没有保留找到的值的位置,直接就和a交换;没有意识到其实是从头比较到尾,所以最后的a不是我们要的那个位置;

题目2:统计大于等于平均分人数
1. 本题PTA提交列表


2. 设计思路

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。
- 没有s--,count比预期的要少一个;

题目3:字符串串动变化
1. 本题PTA提交列表

2. 设计思路
定义整型变量i为循环变量,x用于保留最大值字符的下标,n为字符串的长度
定义字符型变量max用于保留最大值字符;
n=strlen(p);
fori i=0 to i<n 找到max;
if(p[i]大于max){
max=p[i];
x=i;
}
end for
把max前的x-1个元素后移一个位置;
max放到首字符;
3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。
- 忘记了是字符串,把max设成整型变量,导致字符串第一个和第二个都输不出来;然后就是一直把一开始的首字符挪后一位的时候把它改动成了最大值的那个字符;因为我先把最大值字符放到p[0]中,然后再后移其他的字符,这样就导致了原来首字符的丢失;先后移再放最大值字符就解决了!

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

三、阅读代码
1.有n个数,使其前面个数顺序向后移m个位置,最后m个数变成前面m个数。

- 这道题看起来没有很厉害,它只是利用指针对数组进行右移,和上周的数组作业的那道题很像;一开始不知道array_end = *(array+n-1)是什么操作,用printf输出以后发现是每个数组的最后一个元素,用了它就保存了最后一个数,然后每个元素右移一位,非常方便。
2.用指向指针的指针的方法对n个字符串排序并输出。

- 百度了一下没学到的函数,学会了数字的排序,还没有认真研究过字符的排序~~
四、本周学习总结
1.自己总结本周学习内容。
刚开始学指针的时候非常懵逼,不懂学它的意义。后来做一些题目后开始接受它,发现一些用了它程序更加高效。本周掌握了一些基本用法,比如要遍历数组p,可以保留下首地址,在第一个循环中我让p自增即p++,就让p加到了临界点,下面再用到的时候,重新返回去。和数组,函数的结合使用,虽然刚开始用的不是很好,还是不能很直接的使用指针,有时候还是在依靠数组,但是明显感觉到了指针的优势。代码简洁了很多,而且执行效率更高。
2.罗列本周一些错题。
- 课堂派习题:刚开始还不是很能理解指针的意思,所以不会做;

- PTA最后报数的那道题还是调不出来。
C语言博客作业—指针的更多相关文章
- c语言博客作业-指针
一.PTA实验作业 题目1: 1. 本题PTA提交列表 2. 设计思路(用代码表示扣分) 定义整型变量i,count记录平均分,实型变量sum保存总分 for i=0 to n sum = sum+* ...
- C语言博客作业指针
一.PTA实验作业 题目1:统计大于等于平均分人数 本题PTA提交列表 设计思路 定义形参s存放s的首地址,n存放人数m的值,aver存放平均分aver的地址 定义i控制循环,count用来统计高于等 ...
- C语言博客作业6---结构体&文件
C语言博客作业6---结构体&文件 1.本章学习总结(2分) 1.1思维导图 请以思维导图总结本周的学习内容.如下图所示: 1.2.学习体会 描述本周学习感受,也可以在这里提出你不理解地方.对 ...
- C语言博客作业5--指针
C语言博客作业5--指针 1.本章学习总结(2分) 1.1思维导图 请以思维导图总结本周的学习内容,如下图所示: 1.2本章学习体会及代码量学习体会 1.2.1学习体会 描述本周学习感受,也可以在这里 ...
- C语言博客作业06——结构体&文件
C语言博客作业06--结构体&文件 1.本章学习总结 1.1思维导图 1.2.本章学习体会 在本周的学习中,我们学习了关于结构体和文件的内容.结构体的本身并不难,但以结构体为基础的链表还是让我 ...
- 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语言|博客作业10
问题 回答 C语言 博客作业10 这个作业要求在哪里 作业要求 我在这个课程的目标是 熟练循环语句的用法 这个作业在哪个具体方面帮助我实现目标 pta作业 参考文献 <C语言程序设计> 1 ...
- C语言博客作业08
C语言I博客作业08](https://www.cnblogs.com/490-85-00-58-/p/11863312.html) 问题 回答 这个作业属于那个课程 C语言程序设计II 这个作业要求 ...
随机推荐
- 我们web前端常用的一些Array对象及应用
1. Array.filter() filter() 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素. ES6: 2.Array.prototype.find() find() 方法返 ...
- CentOS 5.x 多个ISO文件 安装方法(VMware)
CentOS下载地址:http://mirror.centos.org/centos/ CentOS版本:5.11 VMware版本:11.1.0 CentOS 5.11有两个ISO: CentOS- ...
- jsp学习笔记之:4种基本语法
一. jsp注释:<%-- js注释 --%> 二. jsp声明: <%! public int count; public String test(){return "j ...
- Bzoj4199:[NOI2015]品酒大会
题面 Bzoj4199 Sol 后缀数组 显然的暴力就是求\(LCP\)+差分 \(40\)分 # include <bits/stdc++.h> # define RG register ...
- 用vmware workstation制作cloudstack(kvm)镜像及问题解决办法
说明1:vmware workstation镜像是vmdk格式 说明2:cloudstack配置文件目录:/run/libvirt/qemu/ kvm配置文件目录:/etc/libvirt/q ...
- 【noip模拟】最小点覆盖
Time Limit: 1000ms Memory Limit: 128MB Description 最小点覆盖是指在二分图中,用最小的点集覆盖所有的边.当然,一个二分图的最小点覆盖可能有很 ...
- javascript ES5、ES6的一些知识
ES6 标签(空格分隔): ES6 严格模式 "use strict" 注意:严格模式也有作用域,如果在某个函数内部声明的话,只在该函数内部有作用 1) 严格模式下全局变量声明必须 ...
- MarkDown 的使用学习
以下都是MarkDown常用的语法以及效果图: ### 生成目录 [TOC] ### 标题 标题的标签采用#加文本的形式,几个星就代表几级标题 在#后加空格 # 一级标题 ## 二级标题 ... # ...
- spark source code 分析之ApplicationMaster overview(yarn deploy client mode)
一直不是很清楚ApplicationMaster的作用,尤其是在yarn client mode和cluster mode的区别 网上有一些非常好的资料,请移步: https://blog.cloud ...
- 基于docer搭建私有gitlab服务器
今天闲着无聊,于是乎想用最近很流行的docker容器搭建一个自己的gitlab的服务器,关于docker和gitlab就不多介绍了,网上查了很多资料,貌似没有一个统一的方法,很乱很杂,而且很容易误导人 ...