C博客作业--指针

Posted aawfcasfa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C博客作业--指针相关的知识,希望对你有一定的参考价值。

一、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.罗列本周一些错题

以上是关于C博客作业--指针的主要内容,如果未能解决你的问题,请参考以下文章

C博客作业--指针

C博客作业--指针

C博客作业--指针

C博客作业--指针

C博客作业--指针

C博客作业--指针