C博客作业--指针

一、PTA实验作业

题目1:输出月份英文名

1. 本题PTA提交列表

2. 设计思路

n进入函数后,判断n的值
switch(n)
case 1:return "January";
case 2:return "February";
case 3:return "March";
case 4:return "April";
case 5:return "May";
case 6:return "June";
case 7:return "July";
case 8:return "August";
case 9:return "September";
case 10:return "October";
case 11:return "November";
case 12:return "December";
default:return NULL;

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。

  • 本题是一道十分简单的题目,但写出的代码也并不是一次性对,原因是因为我前几次的思路是想用二维字符数组的方法来写的,返回时用了return a[n-1];在devc++上输出的结果是正确的,但是到了pta上就怎么都没办法正确,所以就换成了用switch判断n的值,然后在一个一个返回。

题目2:求子串在母串中最后一次出现的地址

1. 本题PTA提交列表

2. 设计思路

定义变量i,j,k,flag=0,count=0;//i,j,flag为数组s下标,k为数组t的下标,count作为辅助变量。
进入循环for i=0 to s[i]!='\0'
赋初值k=0;
判断主串中是否有和子串相同部分
if(s[i]t[0]) for j=i t[k]!='\0'
如果有一个元素不同 if(s[j]!=t[k]) break;
k++;
判断t数组是否与s数组的部分完全相同
if(t[k]
'\0') flag=i; count=1;
遍历完整个数组后
如果存在s中完全相同部分 if(count!=0) t=&s[flag]; return t;
反之 return 0;

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。

  • 这道题其实在提交列表上反应不出来什么,因为我在devc++上打过很多次草稿,知道它正确才粘贴过来,然后代码也不是一次就写成了,一开始的思路是碰到s中存在部分与t完全相同就把后面的部分往前移,覆盖前面的部分,但是我输出了abfabcdx,然后调试,发现问题在循环一次后i的值怎么都找不到规律,所以就换成了现在的做法用flag去记住那个i然后就可以不出错的往前覆盖了。

题目3:报数

1. 本题PTA提交列表

2. 设计思路

定义整型变量i=0,j=0,k=0,flag=0,a[MAXN];
遍历数组a,for i=0 to n; a[i] = i+1;
把i返回初值,i=0;
while(flag < n) if(a[i]!=0) k++;
如果报数报道了相应的数字
if(km) j++; out[i]=j; k=0; flag++; a[i]=0;
i++;
如果最后一位也报完了数
if(i
n) i=0;

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。

  • 这道题其实我看不懂它输入和输出的意思,只能靠着题目给的意思写代码,别看我提交一次过,但是这都是靠运气,我在devc++上不止试了20次,因为无法明白输入和输出的意思,所以调试起来就变得十分的麻烦,一改代码就会出现乱码,但是也在慢慢的摸索下,输出了结果。

二、截图本周题目集的PTA最后排名。

三、阅读代码

/*第一篇代码*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void award(int a[],int n)
{
    int times = 0,i;
    
    for(;times != n;)
    {    
        i = rand() % 26;
        if(a[i])
            continue;
        a[i] = 1;
        times++;
        printf("Number %d.\t",i+1);
    }
    printf("\n");
}

int main(void)
{
    int a[26] = {0};
    
    srand((int)time(0));
    
    printf("Award1:");
    award(a,1);
    
    return 0;
}
  • 这篇代码的功能就是人们生活中的抽奖啦。
  • 优点:1.用了函数和库函数来编写程序,使得程序简洁。2.代码有很好的可读性,能十分了当的让人知道这是抽奖的程序,并且这篇代码的缩进十分的好,值得我们去学习,去借鉴。
/*第二篇代码*/
#include<stdio.h>
main()
{
int n,i;
printf("\nplease input a number:\n");
scanf("%d",&n);
printf("%d=",n);
for(i=2;i<=n;i++)
 {
  while(n!=i)
  {
   if(n%i==0)
   { printf("%d*",i);
    n=n/i;
   }
   else
    break;
  }
}
printf("%d",n);
} 
  • 这篇代码的功能是分解质因数
  • 优点:这是一篇用十分基础的程序技巧写出的代码,能让初学者很快就懂,只要明白质因数是什么就可以了,它的缩进也十分的好,排版很好看,具有很强的可读型。

四、本周学习总结

1.自己的总结。

  • 1.本周我们学习了结构体,觉得结构体是一个很好用的东西,它可以把我们学过的各种类型的函数联系到一起,十分的实用,库函数多用多理解它的用法和结构,熟练了其实很方便,写了指针的pta感觉到原来的自信又回来了并且明白了一些看书不懂的问题,可能是因为前面俩章真的是太。。。,不过我不怕,我有一整个寒假可以拉回差距。
  • 2.高数课,从开学到现在就没听过一节,高数课就是开启自习模式,不懂的问题还好有热心的学长学姐帮忙,也就慢慢懂了,大学真的是靠自学。
  • 3.英语从小到大就是我的拖后腿学科,现在到了大学,没了早读,英语背得越少了,反省反省自己,要开始背英语了,要记得当初说过的话。
  • 4.从开学学到现在,对C语言的了解也从浅入深了,突然觉得C语言是一门很神奇的语言,在高中觉得会玩黑色小框框的人是很厉害的人,现在的我不知是否成为了小时候心目中的那个人。
  • 5.每周都有一次总结,但是每次都有问题,这次突然没有了,感觉写博客突然没太有针对性了,也就写写自己的感想吧,人生第一次住宿舍,也不知道怎样去处理这些关系,作为班委,当同学问为什么要这样做,有没有学分时,感受到了社会的气息,毕竟四年后也要进入社会了,提前感受下社会的寒冷也是一种经历吧。
  • 6.对于我们班的同学,我没有感受到很浓厚的团结,感觉天天活在负能量圈里,班委们也想去改变但是可能是宅习惯了的原因,大家都不怎么出宿舍,窜宿舍去玩,这也和我想像中的大学有点不一样,我想像中的大学的人都十分的开朗,能玩到一起,没事就是一伙人一起玩,一伙人一起去图书馆,一伙人一起去吃食堂,可现实更多的是一个人,到哪都是,还好在学习和活动的支配下,生活还算充实,每个人的性格习惯都不同,无法避免,却又无法磨合,有时候真的想快点放假,逃离一会儿,让自己放松放松。
  • 7.对于老师,我觉得比想象的好,我们的老师都很负责,尤其是我们的班主任,不仅关心我们的c也关心我们的其它功课,有问必答,或许这就是人们所说的:上帝带给你一帮不热情的同学,同时也带给你一帮负责的老师。
  • 8.作为学委,班上的同学成绩差,还是17级倒数,这让我很无奈和苦恼,我想过很多的办法去解决,到现在我也想不动了,觉得学习还是得靠自己主动,我只能起提醒的作用,其它恕我无能为力,在这对那些期末会挂科的同学先说声抱歉,我没有帮到大家。

2.错题罗列。

  • 这几次课堂派的问题不大,再看一遍就能反应过来,所以就不列举太多了,更多不懂的是网络工程导论中的基础,我还是多翻翻书吧。

posted on 2017-12-17 16:19  不是本人  阅读(236)  评论(1编辑  收藏  举报

导航