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\n", 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\n", 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

折线图

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

结对编程


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

  • 更加迅速的解决题目。
  • 增加沟通能力。
  • 写题目就更有动力了。
    缺点:
  • 有时题目都不会写,就上网查,这是我们的思路就会不同。
posted @ 2019-05-17 21:18  代码不是我的菜  Views(197)  Comments(4Edit  收藏  举报