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

    这个作业属于那个课程 C语言程序设计II
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/MS/homework/3239
    我在这个课程的目标是 有进步就行了
    这个作业在那个具体方面帮助我实现目标 熟练度
    参考文献 先写完的大佬的代码

    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.遇到的问题

    开始写第一题的时候比较晚,写之前看了室友的代码。就没什么思考的过程了

    4.运行结果

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

     2.设计思路

    3.遇到的问题

    思路图和上一题差不多,就直接套用了,就改了最后一点。列表没懂,看着书复习一遍,看着别人的代码才做的

    4.运行结果

    错误截图忘记截了,上面一张和我的差不多,就拿来用一下哈

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

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

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

    函数接口定义:

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

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

    函数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 



    1.我的代码。
    struct ListNode *createlist()
    {
        struct ListNode*head=NULL,*pnew,*tail;
        int data;
        scanf("%d",&data);
        while(data!=-1){
            pnew=(struct ListNode*)malloc(sizeof(struct ListNode));
            pnew->data=data;
            if(head==NULL){
                head=pnew;
                tail=pnew;
            }
            else{
                tail->next=pnew;
            }
            tail=pnew;
            scanf("%d",&data);
        }
        pnew->next=NULL;
        return head;
    }
    struct ListNode *deleteeven( struct ListNode *head )
    {
        struct ListNode *p,*q,*r
    2.遇到的问题
    前面的单链表算的上理解,后面的删除算得上不懂。时间不够了提交上的是错误。老师讲的蛮细但是当时没能很好的理解,课后看书自己学习发现很困难,在同学的帮助下还是懵懵懂懂的。6.3的作业写的很失败

    3.设计思路

    第一个单链表函数

    4.运行结果

    总结

    已经看过了挑战题的视频,按照步骤做了一半做不下去了。

    回来还是先干好自己该干的事,这些慢慢去处理。

    该干的事

    1.开始准备游戏的设计,开始慢慢一点点尝试。

    2.改掉自己粗心的缺点,这个缺点对自己完成代码的时间有很大的影响

    3.不懂得地方根据同学的代码进行学习

    心态要端正,该干的无论拖到什么时候还是要去完成的,不如自己把握好机会,加油干。

    
    
  • 相关阅读:
    Azure 虚拟机安全加固整理
    AzureARM 使用 powershell 扩容系统磁盘大小
    Azure Linux 云主机使用Root超级用户登录
    Open edX 配置 O365 SMTP
    powershell 根据错误GUID查寻错误详情
    azure 创建redhat镜像帮助
    Azure Powershell blob中指定的vhd创建虚拟机
    Azure Powershell 获取可用镜像 PublisherName,Offer,Skus,Version
    Power BI 连接到 Azure 账单,自动生成报表,可刷新
    Azure powershell 获取 vmSize 可用列表的命令
  • 原文地址:https://www.cnblogs.com/girlsteam/p/10883562.html
Copyright © 2011-2022 走看看