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输出样例:
61.实验代码
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]); }2.设计思路
3.本题遇到的问题及解决办法 本题没有什么问题 4.实验结果截图
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 #输出样例:
31.实验代码
int countcs( struct ListNode *head ) { int count = 0; while(head != NULL) { if(head->code[1] == '0'&&head->code[2] == '2') count++; head = head->next; } return count; }2.设计思路
3.本题调试过程中遇到的问题及解决办法 问题:从一开始,看见链表时, 我发现我真的什么都不会,结构放在了函数中,看题目都看的一脸懵逼 解决办法:在昨天晚上,我认真看了书,发现那串代码太长了,还是看不懂,在琛姐的课上,我终于明白了,链表是什么,改如何使用 4.结果截图
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 71.本题思路
根据老师上课所说的,找到偶节点所在,然后进行删除,用链表进行操作
结对编程 本周队友没来,有很多问题不会,百度或者向大佬请教解决问题 结对编程的优点: (1)在开发层次,结对编程能提供更好的设计质量和代码质量,两人合作能有更强的解决问题的能力。 (2)对开发人员自身来说,结对工作能带来更多的信心,高质量的产出能带来更高的满足感。 (3)在心理上, 当有另一个人在你身边和你紧密配合, 做同样一件事情的时候, 你不好意思开小差, 也不好意思糊弄。 缺点:有的时候两个人会有不同的思路,将会导致一些分歧,这时会有些麻烦,一个人的时候更利于静下心来仔细思考
学习进度条
周/日期这周所花的时间代码行数学到的知识点简介目前比较迷惑的问题2/27-3/74h220文件这次作业没有3/8-3/144h230二维数组感觉还好,就是学习指针后面还是有点蒙3/15-3/248h250数组,冒泡排序法和选择法排序指针3/24-3/295h180字符串函数的使用3/30-4/58h224指针调用函数忘记了很多4/6-4/129h312指针和数组指针还是不太熟练4/13-4/199.5h335字符串相关函数的使用,不会时需要百度4/20-4/264h129结构结构方面加上数组方面的使用4/27-5/42h0学习方法本次作业没有5/5-5/103h23递归感觉递归有点小复杂,好容易被绕晕5/11-5/182h52链表链表不熟练代码行数和博客字数
转载于:https://www.cnblogs.com/muxixixixi/p/10870655.html
相关资源:JAVA上百实例源码以及开源项目