C语言博客作业指针
一、PTA实验作业
题目1:统计大于等于平均分人数
- 本题PTA提交列表
- 设计思路
定义形参s存放s的首地址,n存放人数m的值,aver存放平均分aver的地址
定义i控制循环,count用来统计高于等于平均分的学生人数
定义浮点型指针*p让p=s存放数组s的首地址
for i=0 to n {
aver累加p指针指向的单元格内的值统计出所以学生成绩总分
}
aver除以人数n算出平均分
p=s将p指针重新指向s数组第一个地址
for i=0 to n {
如果指针p指向单元格内的数据大于平均分aver则count自增
}
返回count的值
3.代码截图
题2:过滤字符串只保留串中的字母字符
- 本题PTA提交列表
- 设计思路
定义函数名为fun的无返回型函数,定义字符型指针*p接受字符串str的首地址
定义i控制变量 max存放最大ASCII码值的下标
for i=0 to p[i]!='\0' {
当i=0时max=0
如果有p[i]的ASCII码值大于p[max] 的ASCII码值 则max=i记录下标
}
定义一个temp作为换位置的桥梁
temp=p[max]
for i=max to 0 {
把p[i]的值换为p[i-1]//逐个往后推一位
}
p[0]=temp
3.代码截图
题目3:报数
1.本题PTA提交列表
2. 设计思路
定义rest[n]储存圈中的人的号数,index表示退圈的人对应的rest[]的下标.
for i=0 to n-1
rest[i]=i;
end
for i=1 to n
//要退出的rest[]下标为:上一次退出的人的下标加 m-1 (-1因为退圈者位置被取代),其结果取余现有人数.
index=(index+m-1)%(n-i+1)
//rest[index]是第i个退出的.
out[ rest[index] ]=i
for u=index to n-i-1
rest[u]=rest[u+1]
end
end
3.代码截图