zoukankan      html  css  js  c++  java
  • 2019春第十二周作业

    本周作业头

    这个作业属于那个课程 C语言程序设计II
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/computer-scienceclass4-2018/homework/3236
    我在这个课程的目标是 学会函数指针,数组指针,二级指针,链表的应用
    这个作业在那个具体方面帮助我实现目标 让我进一步的了解了函数指针,链表的运用
    参考文献 C语言程序设计II第十一章

    基础作业

    PTA:1.函数题:计算最长的字符串长度

    6-1 计算最长的字符串长度 (15 分)

    本题要求实现一个函数,用于计算有n个元素的指针数组s中最长的字符串的长度。

    函数接口定义:

    int max_len( char *s[], int n );
    

    其中n个字符串存储在s[]中,函数max_len应返回其中最长字符串的长度。

    裁判测试程序样例:

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    
    #define MAXN 10
    #define MAXS 20
    
    int max_len( char *s[], int n );
    
    int main()
    {
        int i, n;
        char *string[MAXN] = {NULL};
    
        scanf("%d", &n);
        for(i = 0; i < n; i++) {
            string[i] = (char *)malloc(sizeof(char)*MAXS);
            scanf("%s", string[i]);
        }
        printf("%d
    ", max_len(string, n));
    
        return 0;
    }
    

    输入样例:

    4
    blue
    yellow
    red
    green
    

    输出样例:

    6
    

    1)实验代码

    int max_len( char *s[], int n ){
        int i,t=0;
        for(i=0;i<n;i++){
            if(t<=strlen(s[i])){
                t=strlen(s[i]);
            }
        }
        return t;
    }
    

    2)流程图

    3)本题调试过程碰到问题及解决办法



    问题:段错误。
    解决办法:发现是函数用错了,应该用strlen的。

    4)运行截图

    5)自我评价

    评价:这个题目还是有点容易出问题的,所以我就出现了许多问题。
    用时:1.5h。
    2.函数题:统计专业人数

    6-2 统计专业人数 (15 分)

    本题要求实现一个函数,统计学生学号链表中专业为计算机的学生人数。链表结点定义如下:

    struct ListNode {
        char code[8];
        struct ListNode *next;
    };
    

    这里学生的学号共7位数字,其中第2、3位是专业编号。计算机专业的编号为02。

    函数接口定义:

    int countcs( struct ListNode *head );
    

    其中head是用户传入的学生学号链表的头指针;函数countcs统计并返回head链表中专业为计算机的学生人数。

    裁判测试程序样例:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    struct ListNode {
        char code[8];
        struct ListNode *next;
    };
    
    struct ListNode *createlist(); /*裁判实现,细节不表*/
    int countcs( struct ListNode *head );
    
    int main()
    {
        struct ListNode  *head;
    
        head = createlist();
        printf("%d
    ", countcs(head));
    	
        return 0;
    }
    

    输入样例:

    1021202
    2022310
    8102134
    1030912
    3110203
    4021205
    #
    

    输出样例:

    3
    

    1)实验代码

    int countcs( struct ListNode *head ){
       int n=0;
       struct ListNode *p=head;
       while(p!=NULL){
           if(p->code[1]=='0'&&p->code[2]=='2')
               n++;
               p=p->next;
       }
       return n;
    }
    

    2)流程图

    3)本题调试过程碰到问题及解决办法


    问题:运行超时。
    解决办法:发现括号不能随便加,去掉括号就可以了。

    4)运行截图

    5)自我评价

    评价:对于这种题目还是可以花费时间写出来的。
    用时:2h。
    3.函数题:删除单链表偶数结点
    答:老实讲,课堂上几乎听得懂,到了这个题目,就看不懂了,不知道为什么。

    挑战作业:不会呀

    预习作业

    1.所在小组想要开发的项目的名称和目标;
    答:还未商讨完毕,每个人有不同的意见。
    2.项目主体功能的描述;
    答:暂无。
    3.现阶段已做的准备工作;
    答:查阅相关书籍,上网查找相关资料。
    4.小组成员名单和进度安排。
    答:李晨、陈晓龙、蒋柯。

    学习进度条

    日期 这周所花时间 代码行数 学到的知识点简介
    5/10~5/17 7h 150 函数指针,二级指针,链表

    累计代码行数和博客字数

    时间 博客字数 代码行数
    第一周 0 60
    第二周 120 100
    第三周 220 160
    第四周 260 200
    第五周 300 360
    第六周 600 580
    第七周 820 700
    第八周 1130 920
    第九周 1300 1100
    第十周 1600 1100
    第十一周 1850 1200
    第十二周 2050 1350

    折线图

    学习感悟:对于这周的知识点,自我感觉还是比较难的,不怎么会使用这些知识点,对于知识点的理解好像也不怎么清楚,所以对于这周所学的有点懵。

    结对编程


    过程:当时是在结队对象的宿舍里一起讨论题目的,所以有点不适应,但题目我有时会卡主,然后结队对象就会提醒我,然后就写出来了。
    优点:

    • 更加迅速的解决题目。
    • 增加沟通能力。
    • 写题目就更有动力了。
      缺点:
    • 有时题目都不会写,就上网查,这是我们的思路就会不同。
  • 相关阅读:
    求a,b在区间上的公倍数个数
    最长非上升子序列的长度
    uva 11992 线段树
    hdu 5464 dp
    hdu 5465 树状数组
    hdu 5459 递推
    poj 2528 动态线段树
    hdu 4474 bfs
    ural 1495 bfs
    hdu 2795 线段树
  • 原文地址:https://www.cnblogs.com/lcbxhda/p/10883726.html
Copyright © 2011-2022 走看看