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

    2019年春季第十二次作业

    这个作业属于哪个课程 C语言程序设计
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-class2-2018/homework/3234
    我在这个课程的目标是 学会二级指针的运用
    这个作业在哪个具体方面帮助我实现目标 大佬的博文
    参考文献 C语言程序设计

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

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

    函数接口定义:

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

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

    裁判测试程序样例:

    #include <stdio.h>![](https://img2018.cnblogs.com/blog/1580780/201905/1580780-20190517185523552-2064991786.jpg)
    
    #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 a,i;
    a=0;
    for(i=0;i<n;i++)
    {
     if(a<strlen(s[i])) 
       a=strlen(s[i]); 
    }
    return a; 
    }
    
    

    设计思路

    错误截图

    正确截图

    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;
        struct ListNode  *p = head;
        while(p != NULL)
        {
            if(p->code[1] == '0' && p->code[2] == '2')
                num++;
            p = p->next;
        }
        return num;
    }
    
    

    设计思路

    错误截图

    正确截图

    6-3 删除单链表偶数节点 (20 分)

    本题要求实现两个函数,分别将读入的数据存储为单链表、将链表中偶数值的结点删除。链表结点定义如下:

    struct ListNode {
        int data;
        struct ListNode *next;
    };
    
    

    函数接口定义:

    struct ListNode *createlist();
    struct ListNode *deleteeven( struct ListNode *head );
    
    

    函数createlist从标准输入读入一系列正整数,按照读入顺序建立单链表。当读到−1时表示输入结束,函数应返回指向单链表头结点的指针。

    函数deleteeven将单链表head中偶数值的结点删除,返回结果链表的头指针。

    裁判测试程序样例:

    #include <stdio.h>
    #include <stdlib.h>
    
    struct ListNode {
        int data;
        struct ListNode *next;
    };
    
    struct ListNode *createlist();
    struct ListNode *deleteeven( struct ListNode *head );
    void printlist( struct ListNode *head )
    {
         struct ListNode *p = head;
         while (p) {
               printf("%d ", p->data);
               p = p->next;
         }
         printf("
    ");
    }
    
    int main()
    {
        struct ListNode *head;
    
        head = createlist();
        head = deleteeven(head);
        printlist(head);
    
        return 0;
    }
    
    

    /* 你的代码将被嵌在这里 */

    输入样例:

    1 2 2 3 4 5 6 7 -1
    
    

    输出样例:

    1 3 5 7 
    
    

    实验代码

    struct ListNode *createlist()
    {
        int x;
        struct ListNode *head=NULL,*q=NULL,*p;
        scanf("%d",&x);
        while(x!=-1)
        {
            
            p=(struct ListNode*)malloc(sizeof(struct ListNode));
            p->data=x;
            if(head==NULL)
            head=p;
            else
            q->next=p;
            q=p;
            scanf("%d",&x);
        }
        q=NULL;
        return head;
    }
    struct ListNode *deleteeven( struct ListNode *head )
    {
        struct ListNode *tou=NULL,*p=NULL;
        while(head)
        {
            if(head->data%2!=0)
            {
                if(tou==NULL)
                {
                    tou=head;
                    p=tou;
                }
                else
                {
                    tou->next=head;
                    tou=head;
                }
            }
            head=head->next;
        }
        if(tou!=NULL)
        tou->next=NULL;
        return p;
    }
    
    

    错误截图

    正确截图

    预习作业

    1.开发的项目的名称和目标

    名称:扫雷 目标:完成设计

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

    全局变量,时间,地图,图片资源,状态
    绘图初始化函数,载入图片资源等

    3.现阶段已做的准备工作;

    确定了要做的内容

    4.小组成员名单和进度安排。(课程设计阶段:13-17周)

    小组成员:满晗,梁凡,刘媚婷
    进度安排
    13周:完成绘图初始化,设置函数setup,放置地雷
    14周:显示函数show,依照层次结构显示地雷,队列处理函数
    15周:位置搜索函数,响应函数
    16周:主控函数,计时器函数
    17周:胜利判定函数,主函数

    学习感悟:知识是越来越难了,同时也越来越听不懂了

    学习进度表

    日期 这周所花时间 代码行数 学到的知识点 目前比较疑惑的问题
    3/10-3/15 5 49 二维数组的浅显运用,还有数组的强化 为什么打开文件进行写入操作的时候要"r+"
    3/16-3/22 5 70 选择排序法,二维数组的运用,冒泡排序的初步了解 冒泡排序和选择排序的区别
    3/23-3/28 5 40 判断和排序的运用 不会调试
    3/29-4/3 6 70 指针的运用 下标不知道什么时候运用
    4/12-4/19 6 108 动态内存的申请 预习题不会
    4/20-4/25 6 73 结构的概念和定义
    4/26-4/30 3 0 灵魂深处的问答 wu
    5/5-5/10 5 20 递归函数的运用 不会找递归式子
    5/11-5/17 5 65 指针函数和函数指针 二级指针的运用

    折线图

    学习感悟:知识是越来越难了,同时也越来越听不懂了

  • 相关阅读:
    微信小程序 单选按钮 最佳
    微信小程序 单选按钮的实现
    微信小程序 单选框实现
    Java Code To Create Pyramid and Pattern
    Java language
    npm Err! Unexpected end of JSON input while parsing near
    Node.js Express FrameWork Tutorial
    Higher-Order Function Examples
    Create First HTTP Web Server in Node.js: Complete Tutorial
    Node.js NPM Tutorial: Create, Publish, Extend & Manage
  • 原文地址:https://www.cnblogs.com/mediaswag666/p/10880793.html
Copyright © 2011-2022 走看看