博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2019春第十二周作业
阅读量:6341 次
发布时间:2019-06-22

本文共 4342 字,大约阅读时间需要 14 分钟。

本周作业头

这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里
我在这个课程的目标是 了解指针与函数的关系,掌握指针作为函数返回值
这个作业在那个具体方面帮助我实现目标 做作业去掌握函数指针
参考文献 教材

基础作业

1.函数题:计算最长的字符串长度

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

函数接口定义:

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

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

裁判测试程序样例:

#include 
#include
#include
#define MAXN 10#define MAXS 20int 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;}

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

输入样例:

4blueyellowredgreen

输出样例:

6

我的代码

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

实验截图

1583602-20190517195239219-1481764825.png

流程图

1583602-20190517195315030-1680676271.png

本题调式遇到的问题及其解决方法

2.函数题:统计专业人数

本题要求实现一个函数,统计学生学号链表中专业为计算机的学生人数。链表结点定义如下:

struct ListNode {    char code[8];    struct ListNode *next;};

这里学生的学号共7位数字,其中第2、3位是专业编号。计算机专业的编号为02。

函数接口定义:

int countcs( struct ListNode *head );

其中head是用户传入的学生学号链表的头指针;函数countcs统计并返回head链表中专业为计算机的学生人数。

裁判测试程序样例:

#include 
#include
#include
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;}

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

输入样例:

102120220223108102134103091231102034021205#

输出样例:

3

我的代码

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

实验截图

1583602-20190517195949116-676263051.png

流程图

1583602-20190517200014151-1521853590.png

本题调式遇到的问题及其解决方法

无,书上有类似

3.函数题:删除单链表偶数结点

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

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

函数接口定义:

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

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

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

裁判测试程序样例:

#include 
#include
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("\n");}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,*tail,*p;    head=(struct ListNode*)malloc(sizeof(struct ListNode));    head->next=NULL;    tail=head;    while(1)    {        p=(struct ListNode*)malloc(sizeof(struct ListNode));        scanf("%d",&x);        p->next=NULL;        if(x==-1)            break;        p->data=x;        p->next=NULL;        tail->next=p;        tail=p;    }    return head;}struct ListNode *deleteeven( struct ListNode *head ){    struct ListNode *p1,*p2;    int flag;    p1=head;    p2=p1->next;    while(p1->next)    {        flag=0;        if(p2->data%2==0)        {            p1->next=p2->next;            p2=p2->next;            flag=1;        }        if(flag==0)        {            p1=p1->next;            p2=p1->next;        }    }    return head->next;}

实验截图

1583602-20190517200438634-1339595947.png

流程图

1583602-20190517200521818-1660220750.png

本题遇到的问题及其解决方法

本题遇到很多问题今天才刚开始这个链表吗,然后开始翻书还有问室友其实就是做完这道题还是有点迷糊的,还是要多看一下书。

预习作业

1.所在小组想要开发的项目的名称和目标;

开发一个软件可以舒缓平时积累的压力,名字:asmr宝藏区
2.项目主体功能的描述;
有各种声音来让人更好的入睡和放松
3.现阶段已做的准备工作;
还在上网搜资源
4.小组成员名单和进度安排。
李为民,王磊,秦行

学习时间表

周/日期 这周所花的时间 代码行数 学到的知识点简介 目前比较迷惑的问题
2/25-3/3 三天 45 数组的认识及用法 数组长度的理解
3/4-3/10 两天 37 编写程序时处理文件 fscanf与fprintf的具体用法
3/11-3/17 三天 53 二维数组的使用及文件插入 二维数组的用法、上三角的判断及文件的处理
3/18-3/24 两天 113 判断回文、一维字符数组的用法、使用字符串编程 使用字符串编程
3/25-3/31 两天 78 判断回文、一维字符数组的用法、使用字符串编程 使用字符串编程
4/1-4/7 两天 88 指针变量的基本运算,内存单元和地址之间的关系 不太了解指针数组
4/6-4/12 三天 200 更深一步掌握指针与数组间的关系;懂得指针可以实现数组的一些功能
4/18-4/19 8h 35行 结构体 double与float
4/19~4/26 三天 93行 1.结构数组里面指针的运用,2.结构数组的基本运用,3.递归函数相关知识的了解
5/6-5/9 十八个小时以上 200多行 递归思想,具体的递归实现大概规律
5/9-5/16 250min 100 指针进阶 对链表的了解

折线图

1583602-20190517201818597-1939585551.png

学习感悟

感觉自己能力还是不够吧,单独去读代码还OK但是去写的话没有例题的话去写一些稍微难点的题就有点难了。

结对编程

本周编程总体感觉还好,问了队友才知道书上有题目可以借鉴,我。。。没话讲。

转载于:https://www.cnblogs.com/lwmzei6/p/10883338.html

你可能感兴趣的文章
计算一个点是否在一个区域中
查看>>
正则表达式
查看>>
淘宝面试题:有一个一亿节点的树,现在已知两个点,找这两个点的共同的祖先。...
查看>>
EntityFramework 6.x多个上下文迁移实现分布式事务
查看>>
高版本SQL备份在低版本SQL还原问题
查看>>
一键安装最新内核并开启 BBR 脚本
查看>>
C# 绘制图表(柱状图,线性图,饼状图)
查看>>
.NET中使用Redis
查看>>
PHP 页面跳转的三种方式
查看>>
Juniper总结
查看>>
屏蔽scrollview的滚动
查看>>
面试题目3:智能指针
查看>>
取消凭证分解 (取消公司下的多个利润中心)
查看>>
flask ORM: Flask-SQLAlchemy【单表】增删改查
查看>>
vim 常用指令
查看>>
nodejs 获取自己的ip
查看>>
Nest.js 处理错误
查看>>
MD5的安全性
查看>>
你好,C++(16)用表达式表达我们的设计意图——4.1 用操作符对数据进行运算...
查看>>
[转] Mac下 快速写博客的软件 MarsEdit
查看>>