一、PTA实验作业
6-3 统计大于等于平均分人数
1. 本题PTA提交列表
2. 设计思路
函数调用{
定义i,count表示超过平均分的个数,sum赋初值0表示总分
for i=0 to n-1{
把*(s+i)累加到sum
} end for
*aver=1.0*sum/n;
for i=0 to n-1{
如果 *(s+i)>*aver
count自增;
}
返回 count
}
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
看了一下数据,差一点问题不大,平均数比原来的小一些,第一感觉是把-1算进去了
然后发现差更多,还是谨慎点
输出sum发现sum少了1,数据类型定义错了。。
6-5 判断回文字符串
1. 本题PTA提交列表
2. 设计思路
函数头{
定义n,i,flag表示是否符合回文的标志
定义一个指针标量c
把strlen(s)的值赋值给n
c=s+n-1将c指向字符串倒二字符
for i=0 to n/2 {
如果*(c-i)!=*(s+i){
flag=0;
直接退出循环
} end for
如果(flag==1) 返回 true
否则 返回false
}
}
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
一开始就错,我让每次flag的值都输出
发现每次flag都是0
发现*(c+i)是看不懂的符号,不对后面的应该要递减的。。。。
还是错
还是那样
调试发现前面是t时后面是0.c应该指向s+n-1
6-7 过滤字符串只保留串中的字母字符
1. 本题PTA提交列表
2. 设计思路
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
输入字符串没有输出,运行超时,发现ptr[j++]=ptr[i++],遇到不满足条件时i不会变化死循环了
把i++放在内循环外
二、截图本周题目集的PTA最后排名
三、阅读代码
#include <stdio.h>
#include <ctype.h>
void Fun(char?*str)
{
int i,j;
i=j=0;
while(str[i]){ //处理空格删除
if(str[i]!=‘ ‘) //如果不是空格,重组数组
str[j++]=str[i];
i++;
}
str[j]=‘\0‘; //结束符结束重组数组
}
int main()
{
char str[81];
int n;
gets(str);
puts(str);
Fun(str)
printf("*** str: %s\n",str);
}
四、本周学习总结
1.你学会了什么?
- 学习了声明结构类型,在花括号后面一定要有“;”
- 声明函数有三种形式
- 结构成员通过变量访问符‘‘ .‘‘访问
- 和数组不同,结构变量的名字并不是结构变量的地址,必须用&