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’使其变为数字。

posted @ 2017-12-16 22:07  烦呢,还要起名字  阅读(216)  评论(0编辑  收藏  举报