代码改变世界

指针

2017-12-17 20:05  小厮sir  阅读(183)  评论(0编辑  收藏  举报

一、PTA实验作业

题目1:题目名称:6-4 找最大值及其下标

1. 本题PTA提交列表(要提交列表,不是结果)

2. 设计思路(伪代码)

定义一个排序后的数组sort
定义冒泡排序常用变量 outer,inner,i,temp,p;
定义最大值 Max;
	对新数组的元素赋值for(i=0;i<n;i++){sort[i]=*(a+i);}
	
	冒泡排序并找到最大值 
	for(outer){
		for(inner){
                   if外层大于内层
                   交换内外层}	}
    Max=排序后的数组第一个元素
    用最大值来寻找原来对应数组元素的下标
	for(i=0;i<n;i++){
		if(Max==*(a+i))
		*b=i;}
		return Max;
	}

3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)

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

第一次的思路是一个一个的比较然后直接比较出最大值在用指针找到下标,但发现有点行不通,所以先排序这样就可以找到最大值,
然后有这个最大值返回原来的数组找到对应元素后在用指针对应下标

题目2:题目名称:判断回文字符串

1. 本题PTA提交列表(要提交列表,不是结果)

2. 设计思路(伪代码)

int n放原字符串中字符的个数
	定义两字符数组分别存放原字符串的前后部分 
	sizeof算出原字符串个数 为n
	
	for(i=0;i<(n/2);i++){
	对前半部分的数组赋值front[i]=*(s++);}	
	for(i=0;i<(n/2);i++){
	对后半部分的数组赋值after[i]=*(s--);}

	如果产生的前后两个数组相同	
        则true=1;}
        反之则
    false=0;
}

3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)

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

最后出现了编译错误,可能是typedef enum {false, true} bool;网上查看后还是不太明白是做什么用的

题目3:题目名称:6-2 求出数组中最大数和次最大数

1. 本题PTA提交列表(要提交列表,不是结果)

2. 设计思路(伪代码)

	定义一个新数组sort
	定义冒泡排序常用变量outer,inner,i,temp;
	定义最大与次大值Max1,Max2;
	对新数组的元素赋值
	    for(i=0;i<n;i++)
	    {sort[i]=*(a+i);}
	冒泡排序并找到最大值
			temp=sort[inner];
			sort[inner]=sort[outer];
			sort[outer]=temp;} 
	Max1=sort[0];
	Max2=sort[1];
        遍历原来的数组并与Max1和Max2交换元素的值
		if(Max1==*(a+i)){
		temp=0;
		temp=*(a+0);
		*(a+0)=*(a+i);
		*(a+i)=temp;}	

		if(Max2==*(a+i)){
		temp=0;
		temp=*(a+1);
		*(a+1)=*(a+i);
		*(a+i)=temp;}	

3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)

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

这种做法虽然做出来了,但是不够优化,函数里面还定义了一个数组,占用太多内存,但思路我觉得还是比较好理解的
但是做的时候主要遇到的困难时在作指针运算时有时候没有加对导致最后交换的结果出错

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

三、本周学习总结(1分)

1,本周主要学习了结构,结构里面可以放各种不同类型的变量,而且结构也可以嵌套
2,结构在定义是要用到struct,另外结构名要十分清楚可以包含结构成员名
3,结构在嵌套时内层的那个结构要在外层上面就定义
4,相比起数组,结构有更好地实用性,因为他可以涵盖很多不同类型的量
5,应用结构成员时需要用到“.”叫做“取结构体变量成员”优先级最高
6,结构体最后还要有“;”
本周学习后对结构体数组还有结构体指针和在函数中运用结构体的知识还比较模糊,在下周的学习中将主要关注这一块的内容