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

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

这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里
我在这个课程的目标是 更好的运用指针和链接表格
这个作业在那个具体方面帮助我实现目标 目前不明白
参考文献 书本

计算最长的字符串长度

本题要求实现一个函数,用于计算有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

你也可以选择在行首加井号表示不同级别的标题 (H1-H6),例如:# H1, ## H2, ### H3,#### H4。

我的代码:

int max_len( char *s[], int n ){    int i,pta,bky;    pta=0;    for(i=0;i

流程图:

1580529-20190517202645146-1598199637.png

遇到的问题:

这个题目其实不是特别的难,起初的事时候我运用了stcrmp这个函数,想的是strcmp(pta,bky)>0;这样子来比较字符串的长度,但是在运行的时候明显错误,后来我以为是定义类型除了错误,所以我吧int改成char,但是定义依旧错误,后来我的搭档告诉我strcmp这个函数是用来比较字符串首字母的asic得值,最后就改了

运行结果图:

1580529-20190517195943353-369259446.png

1580529-20190517195953853-450094099.png

统计专业人数

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

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

流程图:

1580529-20190519113101442-1696858719.png

遇到的问题:

问题就是我在函数题的是好的困扰,因为我不知道在最后该如何返回,救是不知道return啥

运行结果图:

1580529-20190519112318569-1047930331.png

删除单链表偶数节点

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

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

我的代码:

流程图:

遇到的问题:

试验运行图:

学习感悟:

我觉得在指针进阶的那一块虽然比较复杂但是在只要搞懂了就还行,因为指针指向指针是比较的方便的,在运用方面,我根本就是很难说运用的特别好:另外就是链接表,这个真的是需要很大的脑容量的鸭,感觉好难受,老师上课也强调了好几次,这个非常的重要,在上课的时候来老师也是多了很多次的,虽然在可上面我听懂的,但是不知道会不会运用好,所以接下来我会好好的去学习呀

编程对结:

反正对我这种菜鸡来说是很好很好的,因为脑子常常不好使鸭。合作伙伴:陈剑雄

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
3/17-3/19 好长时间 25 排序 再换位置上有一点
3/20 一天 30 二维数组 再行和列的问题上有困惑
3/22 一天 20 冒泡排序 在计算上面有点不明白
3/29 一个下午 40 单词排序 还是有蛮多的不明白的点
4/11 五个小时 5 指针 目前没有困惑
4/12 一天 150 switich语句的使用 深刻理解一下了解其他用法
4/18-4/19 一天 150 指针运行strcpy和strcuy运用 冒泡排序
5/5-5/10 两天 100 递归函数 对于这个章节疑惑还蛮大的
5/12-5/17 两天 250 指针进阶和链表构建 很复杂需要很多时间去领悟

1580529-20190621163310473-1318279212.png

转载于:https://www.cnblogs.com/ht0529/p/10883497.html

你可能感兴趣的文章
子组件给父组件传数据
查看>>
unix/linux下的共享内存、信号量、队列信息管理
查看>>
Hilbert先生旅馆的故事
查看>>
采访吴岳师兄有感 by 王宇飞
查看>>
LVS简略介绍
查看>>
hdu 1021 Fibonacci Again
查看>>
JVM架构_XmnXmsXmxXss有什么区别:转
查看>>
PHPExcel 使用心得
查看>>
洛谷 P3374 【模板】树状数组 1(单点加,区间和)
查看>>
verilog 代码编写小记
查看>>
PyQT的安装和配置
查看>>
从 docker 到 runC
查看>>
守护进程
查看>>
php数组
查看>>
Linux 防火墙
查看>>
互联网金融P2P主业务场景自动化测试
查看>>
My third day of OpenCV
查看>>
Android的View和ViewGroup分析
查看>>
echarts.js中的图表大小自适应
查看>>
Delphi的FIFO实现
查看>>