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

    这个作业属于那个课程 C语言程序设计II
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/MS/homework/3206
    我在这个课程的目标是 了解函数指针和指针函数等用法
    这个作业在那个具体方面帮助我实现目标 指针函数
    参考文献 C语言书

    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 )

                            2.其中n个字符串存储在s[]中,函数max_len应返回其中最长字符串的长度
                            3.循环语句找出i使得最大值与之相等
    

    我的代码:

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

    截图:

    思维导图:

    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
    #
    

    我的代码:

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

    这个不会做嘞

    1.所在小组想要开发的项目的名称和目标; 项目:游戏,(火柴人打羽毛球) 目标:至少做到能够2p或多p对战
    2.项目主体功能的描述; 功能:娱乐,可以2p或多p进行在线对战,并决出第一
    3.现阶段已做的准备工作; 准备工作:准备好了书,基本工具(电脑),准备下载那个30g的鬼东西
    4.小组成员名单和进度安排。(课程设计阶段:13-17周)
    成员: 20188398 喻达龙
    20188378 黄雨航
    20188382 李凌志
    进度安排:还没打算。

  • 相关阅读:
    LeetCode Flatten Binary Tree to Linked List
    LeetCode Longest Common Prefix
    LeetCode Trapping Rain Water
    LeetCode Add Binary
    LeetCode Subsets
    LeetCode Palindrome Number
    LeetCode Count and Say
    LeetCode Valid Parentheses
    LeetCode Length of Last Word
    LeetCode Minimum Depth of Binary Tree
  • 原文地址:https://www.cnblogs.com/ydlBLOG/p/10880839.html
Copyright © 2011-2022 走看看