7-2
设计思路:本题要求处理数据并输出最大值及其对应的最小下标,首先输入n,然后定义一个长度为n的数组用于存储数据,定义m=a[0],n=0,从a[1]开始与m进行比较,若某项大于m,就把该项的值赋给m,同时把其下标的值赋给n.循环结束后,输出当前的m和n
流程图:
调试过程:1,
如图,没有考虑到输入单个数时不用进行判断,应把n=1和n>1的情况分开
2,
如图,在前一个提交的基础上,仅仅是加上当n=1的情况,但是当n>1时,n=1的情况都是存在的,因此会输出两遍导致错误,应在其后加上判定条件if(n>1)
7-3
设计思路:本题要求将数组中的数据逆向存放,首先输入n,建立数组,然后输入n个值。对于子函数中,只要将第i个数和第n-1-i个数交换即可,一直进行到i>=n/2
流程图:
调试过程:
如图,没有注意到题目格式的要求,输出时最后一项后时没有空格的,因此只有当输入一个数时才能运行正确,应分为两种情况,当i=n-1时,输出不带空格的值,否则输出带空格的值。
7-4
设计思路:本题要求再给定的n个整数中查找某个数,首先应输入n,建立数组,输入n个值。然后输入待查整数,建立一个循环,从a[0]开始,若a[i]等于待查整数,则输出i,若知道a[n-1]都没找到,则输出Not found
流程图:
调试过程:
如图,没有将i=n与i!=n的情况区分开,导致出现两个结果,应在第二个输出前补上else
#同学代码结对互评
同学的代码:
我的代码:
不同在于:同学的思路是将题目要求插入的x当作已有数组的后一位组成新数组,而后通过排列得到有序的数组。而我的思路是将x与相邻的两个数比较,如果x恰好处于这两个数之间,则前面的数原封不动复制给新数组b[10],x顶替后一位的位置,从后一位开始,原来数组的数的位置后移一位。从而得到新数组。
此外,在子函数的传递中,同学处理的更好。她从主函数中传递了原来数组的首地址到子函数,而我定义的全局变量虽然也可行,但占据更多的内存,有失妥当。
#本周pta排名
#本周学习总结
1,学会了运用数组去存储多位数据,在子函数与主函数形参与实参的传递中,用数组名称为数组首地址可传递,不要一直执着于全局变量。
2,对涉及字符串的题目不够熟练