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

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

这个作业属于哪个课程 C语言程序设计II
这个作业的要求在哪里
我在这个课程的目标是 能用我学到的东西完成相关的任务
这个作业在哪个具体方面帮助我实现目标 让我学到的新的知识点,也让我更加了解了我的专业学习
参考文献 C语言程序设计II

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 len, i;    int max=0;    for(i=0;i

2)设计思路

1581892-20190517202003111-1761051160.jpg

3)本题调试过程中遇到的问题及解决方案

基本没什么问题

4)运行结果截图

1581892-20190517202047222-1374710046.jpg

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

2)设计思路

1581892-20190517202115215-1555235785.jpg

3)本题调试过程中遇到的问题及解决方案

看书上的,没什么问题
4)运行结果截图
1581892-20190517202135302-1824332530.jpg

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("\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

1)实验代码

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

2)设计思路

1581892-20190517202225453-1608115290.jpg

3)本题调试过程中遇到的问题及解决方案

看书上的,老师讲过后,基本没什么问题
4)运行结果截图
1581892-20190517202240741-48126381.jpg

学习进度条

本周所花时间 代码行数 学到的知识点 目前比较疑惑的问题
第一周 一天 50 关于数组的使用 数组的定义和使用还不是很了解
第二周 一天 60 对于指针的了解和使用 基本上还好
第三周 一天 100 关于对数组更深刻的理解 对于这类问题还不知道怎么解决
第四周 两天 200 如何对数组中的元素进行排序 不能完全靠着思维打代码有些地方不知道怎么用代码表示
第五周 两天 199 了解到更多关于数组的使用 对于数组的使用还不太了解
第六周 两天 75 对于指针有了初步的了解 还没有完全掌握指针这个知识点,不知道指针该什么时候用
第七周 两天 8 对于自定义函数稍微理解了一点 对于数组这个知识点还是不会
第八周 两天 97 主要还是自定义函数 对于很多知识点还只是一知半解
第九周 两天 75 学习了关于结构的使用 感觉都不会。。
第十一周 一天 22 学习了递归 对于递归这个知识点的应用不太懂
第十二周 两天 64 学习了链表,指针函数等等 链表的创建还是不太明白

学习感想:这周的学习学到了比较多的东西,很多不懂的,在老师的讲解下还是懂了很多。

1581892-20190517203219128-1906114401.jpg

转载于:https://www.cnblogs.com/hltltp/p/10883518.html

你可能感兴趣的文章
Wince实现软件开机自启动
查看>>
【BZOJ1106】【POI2007】立方体大作战tet(树状数组+贪心)
查看>>
【Python⑥】python的缩进,条件判断和循环
查看>>
java第九次作业
查看>>
vue 调用 ios提供的方法
查看>>
RapidWeaver 8.3 for Mac 共享版 – 强大的零编码H5网页开发工具
查看>>
2018多校第6场 1013 hdu6373 Pinball
查看>>
《英语修辞与写作(修订版)》黄任(编著)epub+mobi+azw3格式下载
查看>>
Linux htop工具使用详解
查看>>
(十)、iptables进行转发使内网能上网
查看>>
python之路《八》装饰器
查看>>
maven 打包前 Junit 测试
查看>>
spring boot 添加druid
查看>>
SQL联合查询
查看>>
dev 控件之 gridcontrid 应用
查看>>
什么是同一网段
查看>>
温故而知新
查看>>
c# 菱形,三角形
查看>>
java之MD5加密
查看>>
Codeforces Round #432 (Div. 2) ABC
查看>>