一、PTA实验作业
题目1:6-2 求出数组中最大数和次最大数
1. 本题PTA提交列表
2. 设计思路
定义函数int fun ( int *a, int n ) 定义变量i,j表示下标,iindex=0表示最大值下标,max表示最大值,t表示交换中介 for i=0 to 1 for j=i to n-1 max←下标为index的数组元素*(a+index) 寻找数组中从下标为 j 开始的最大值 IF max<*(a+j) index←j 把最大值的下标赋给index 交换a[i]和a[index] end for 返回*a
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
开始时认为只是类似于冒泡排序于是把所有数组元素进行了排序,发现c++上答案和pta不一样后发现只需要做冒泡排序的前两次即可
题目2:6-3 统计大于等于平均分人数
1. 本题PTA提交列表
2. 设计思路
定义函数int fun ( float *s, int n, float *aver ) 定义整型变量i,浮点型变量sum=0表示成绩之和,result表示大于等于平均分的同学个数 for i=0 to n-1 将所有输入的成绩求和 end for 计算平均分 *aver=sum/n for i=0 to n-1 IF(输入的数组元素*(s+i)大于等于平均分*aver) result++ end for 返回result
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
未给sum和result赋初值,输出结果异常。但如果只给sum赋初值,答案仍正确。
题目3:6-4 找最大值及其下标
1. 本题PTA提交列表
2. 设计思路
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
在赋值max=(a+k)过程中忘记加括号,而取地址符‘’优先级大于‘+’导致结果出错
二、截图本周题目集的PTA最后排名
三、阅读代码
#include"stdio.h" #define nmax 50 main() { int i,k,m,n,num[nmax],*p; printf("please input the total of numbers:"); scanf("%d",&n); p=num; for(i=0;i<n;i++) *(p+i)=i+1; i=0; k=0; m=0; while(m<n-1) { if(*(p+i)!=0) k++; if(k==3) { *(p+i)=0; k=0; m++; }
功能:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,求出最后留下的是原来第几号的那位。
优点:利用数组和指针的方式将指针变量p所指向的变量赋值为0然后再在源地址上+1来跳过该数组元素。
四、本周学习总结
1.自己总结本周学习内容。
- 学会了一些常见的字符串操作函数
- 学会了数组名作为参数传递给指针变量
- 学会了一些基本的结构定义
2.罗列本周一些错题
来源:https://www.cnblogs.com/LHLH/p/8053258.html