zoukankan      html  css  js  c++  java
  • 第十二周编程总结

    这个作业属于那个课程 C语言程序设计II
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/computer-scienceclass4-2018/homework/3236
    我在这个课程的目标是 学会指针函数,函数指针,链表
    参考文献 C语言程序设计II

    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
    实验代码:

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

    设计思路:

    碰到问题及解决办法:

    问题:答案错误,函数返回值错误
    解决方案:将主函数需要的变量值返回,即返回p即可
    正确截图:

    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
    

    代码:

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

    设计思路:

    碰到问题及解决办法:

    问题:运行超时
    解决办法:看了下代码发现循环语句的结束条件搞错了,给while语句重新定结束条件

    运行截图:

    预习作业

    从第十三周开始,将进入课程设计阶段,请在本次作业中给出:

    1.所在小组想要开发的项目的名称和目标;
    暂定,还未商量出

    2.项目主体功能的描述;
    暂定

    3.现阶段已做的准备工作;
    正在讨论与思考

    4.小组成员名单和进度安排。(课程设计阶段:13-17周)
    张文龙,周德坤,曹泳

    学习进度条

    周/日期 这周所花的时间 代码行数 学到的知识点简介 目前比较迷惑大问题
    5/7-5/14 10个小时 320行 指针函数,函数指针 链表

    累计代码行数和博客字数

    时间 博客字数 代码行数
    第一周 0 45
    第二周 340 100
    第三周 300 150
    第四周 320 180
    第五周 500 220
    第六周 700 420
    第七周 600 350
    第八周 650 420
    第九周 680 500
    第十周 560 260
    第十一周 550 320

    学习感悟:
    这次的课程还有很多没听懂,题目也有许多还不会做,几个题目都是问同学借鉴了同学的,还得多看下书
    结对编程:
    1.结对编程两人一起思考可以得到自己一个人想不到的思路
    2.结对编程可以督促学生一起坚持学习
    3.学习时更有效率
    4.不足:容易分神

  • 相关阅读:
    STL--sort源码分析
    进程和线程的区别
    static 关键字 静态成员变量及静态成员函数
    二叉树遍历总结 先序、中序、后续、广度、深度
    C++用new和不用new创建类对象区别
    传输层--TCP和UDP的区别
    传输层的作用
    微信商户/H5支付申请 被拒原因:网站存在不实内容或不安全信息
    Oracle本地网络服务名配置
    存储过程常用技巧
  • 原文地址:https://www.cnblogs.com/cxnkkk/p/10882698.html
Copyright © 2011-2022 走看看