C博客作业--指针
一、PTA实验作业。
题目1:6-3 统计大于等于平均分人数
1.本题PTA实验结果
2.设计思路
3.代码截图
4.本题调试过程碰到问题及解决办法
本题基本没遇到上面问题,只是我把代码写成最后平均值却不一样了,调试后发现sum在第一次就改变了。
题目2:6-6 输出月份英文名
1.本题PTA实验结果
2.设计思路
char* getmonth(定义整型变量 n){
if(n在1到12之间){
定义指针数组并将其赋值 *a[] = {"January", "February", "March",
"April", "May", "June", "July", "August", "September",
"October", "November", "December"};
返回 a[n-1]所指向的字符串;
}
else{
返回 空值;
}
}
3.代码截图
4.本题调试过程碰到问题及解决办法
-
碰到的问题:
- ![](http://images2017.cnblogs.com/blog/1232112/201712/1232112-20171216200341858-1161779383.png)时输入到8时![](http://images2017.cnblogs.com/blog/1232112/201712/1232112-20171216200415249-152546271.png)发现输不出来了,于是我觉得可能是范围错误
发现都可以输出但依旧是答案错误。
- 解决办法:于是我借鉴了网上的,通过指针数组指向所要的变量,然后通过a[n-1],来将各个月份输出来。
题目3:6-11 报数
1.本题PTA实验结果
2.设计思路
void CountOff( int n, int m, int out[] ){
定义整型变量 i
for(i=0 to n-1;i++){
out[i]=0;
}
定义指正变量*p,定义整型变量j=0;
将指针p指向out;
定义整型变量 count;
for(i=1 to n ; i++){
将 count=0;
while(count比m小时){
if(指针指向的数*(p+j)==0){
count++;
}
if(count==m){
*(p+j)=i;
}
j++;
if(j==n){
j=0;
end while;
end if;
3.代码截图
4.本题调试过程碰到问题及解决办法
-
碰到的问题:
- 因为错误都为运行超时,换了个写法,结果得到这个结果,然后时就停止退出循环了
-
解决办法:输入的n=20 ,j到21了,而事实上是没有21的,只有20,导致了这个结果,所以如果后面j=n的话就直接将j重新赋值为0,就可以了。
二、截图本周题目集的PTA最后排名。
1.PTA排名
三、阅读代码(1分)
-
6-2 求出数组中最大数和次最大数
- ![](http://images2017.cnblogs.com/blog/1232112/201712/1232112-20171216205959343-601271640.png) - 他首先用一个循环,每一次循环输出一个数,分别是最大次大值;然后通过指针指向来得出最大值和次大值。他的优点在于便于阅读,可以易懂的看出他的思路,而且也可以找出自己错误的思路,值得我学习。
-
6-5 判断回文字符串
- ![](http://images2017.cnblogs.com/blog/1232112/201712/1232112-20171216210700280-831976503.png) - 他的代码很简便,用了strlen函数把s的长度算了出来,然后赋值-1给一个变量u.而且只用了一循环就可以判断出是否是回文,最后将输出时用1,0表示,而不是用true和false。这个代码可以让我们知道更为简便的算出字符串的长度。
四、本周学习总结
1.自己总结本周学习内容
-
1.利用指针,可以减少代码量,提高运行效率。指针不能赋值,但如果指针指向的了一个变量,便可以通过指针,对这个变量赋值;
-
2.字符串可以赋给指针变量,指针变量所指向的地方为字符串的首个字符的地址;
-
3.用strlen来得出字符串的长度,用strcpy来给某个变量赋值为和另一个变量相同的字符串;strcmp比较字符或者数字的大小,strstr在字符串中查找子串首次出现的地址。
-
4.结构体定义:struct 结构名{ 类型名 结构成员名1; }结构变量。。结构变量使用时用x.y表示x为结构变量,y为结构成员。结构变量可以为指针,数组,变量;
成员可以是变量和数组 -
5.指向运算符-> ,如p->num,表示指针p访问num。这通常用于指针结构变量。
-
6.结构体的嵌套,(如下所示)
struct address {
char city[10];
char street[20];
int code;
int zip;
};
char name[10];
struct address addr;
int computer,english,math;
double average;
};
2.罗列本周一些错题。
-
程序会提示没加;号
-
首先这是sum输出的各数字的和,所以应该将字符-‘0’使其变为数字。