2018c语言第3次作业
6-1 输出月份英文名
1.设计思路
(1)主要描述题目算法
第一步:先定义一个指针数组。
第二步:根据for循环判断月份并返还月份字数。
2.实验代码
int getindex( char *s )
{
int i=0,t=-1;
char *p[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
for(i=0;i<7;i++)
{
if(*p[i]==*s&&strlen(*p[i])==strlen(*s))
{
return i;
}
}
return t;
}
3.本题调试过程碰到问题及解决办法
无问题.
6-2 查找星期
1.设计思路
(1)主要描述题目算法
第一步:定义一个字符指针数组。
第二步:用循环和条件语句判断这个数是否等于0。等于就返回i。
第三步:否则返回t。
(2)流程图


2.实验代码
int getindex( char *s )
{
int i=0,t=-1;
char *p[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
for(i=0;i<7;i++)
{
if(strcmp(p[i],s)==0)
{
return i;
}
}
return t;
}
3.本题调试过程碰到问题及解决办法
无问题.
6-3 计算最长的字符串长度
1.设计思路
(1)主要描述题目算法
第一步:定义初值。
第二步:根据循环和判断来判断大小。
第三步:返回最长字符串的字符返回字数。
2.实验代码
int max_len( char *s[], int n )
{
int i,t=0;
for(i=0;i<n;i++)
{
if(strlen(s[i])>strlen(s[t]))
{
t=i;
}
}
return strlen(s[t]);
}```
###3.本题调试过程碰到问题及解决办法
无。
###**6-4 指定位置输出字符串**
###1.设计思路
(1)主要描述题目算法
第一步:定义初值t,g,mark,flag。
第二步:根据判断结果不同标记成不同的数值。
第三步:根据不同条件了来返回其中的字符串。
###2.实验代码
char match( char s, char ch1, char ch2 )
{
int i=0,j=0,t=1,g=1,mark,flag;
for(i=0;;i++)
{ if((s+i)=='\0')
{break;
}
if((s+i)ch1&&t!=0)
{t=0;
mark=i;}
if(*(s+i)ch2)
{g=0;
flag=i;
}
}
if(t1)
{
printf("\n");
*s='\0';
return s;
}
if(t!=1&&g0)
{
for(j=mark;;j++)
{
if((s+j)=='\0')
{break;
}
printf("%c",(s+j));
if(*(s+j)ch2)
{ printf("\n");
return (s+mark);
}
}
}
if(t!=1&&g1)
{
printf("%s\n",(s+mark));
return (s+mark);
}
}
###3.本题调试过程碰到问题及解决办法
无。
###**6-1 奇数值结点链表**
###1.设计思路
(1)主要描述题目算法
第一步:创建2个新的链表。
第二步:根据所给链表的奇偶性不同将其给不同的链表。
第三步:返回2个链表的头结点。
###2.实验代码
struct ListNode readlist()
{
int data;
struct ListNode head=NULL;
struct ListNode p;
while(scanf("%d",&data)&&data!=-1)
{
struct ListNode q=(struct ListNode)malloc(sizeof(struct ListNode));
if(q!=NULL)
{
q->data=data;
q->next=NULL;
}
else exit(1);
if(head!=NULL)
{
p->next=q;
}
else head=q;
p=q;
}
return head;
}
struct ListNode getodd( struct ListNode **L )
{
struct ListNode head0=NULL,head1=NULL,p0,p1;
while((L)!=NULL)
{
int data=(L)->data;
struct ListNode q=(struct ListNode)malloc(sizeof(struct ListNode));
if(data%2)
{
if(q!=NULL)
{
q->data=data;
q->next=NULL;
}
else exit(1);
if(head1!=NULL)
{
p1->next=q;
}
else head1=q;
p1=q;
}
else
{
if(q!=NULL)
{
q->data=data;
q->next=NULL;
}
else exit(1);
if(head0!=NULL)
{
p0->next=q;
}
else head0=q;
p0=q;
}
L=(L)->next;
}
*L=head0;
return head1;
}
###3.本题调试过程碰到问题及解决办法
无
###**6-2 学生成绩链表处理**
###1.设计思路
(1)主要描述题目算法
第一步:建立一个链表利用循环来进行赋值。
第二步:输入条件值历链表,对每个低于条件值的节点进行删除。
第三步:返回删除操作后的链表头结点。
(2)流程图



###2.实验代码
struct stud_node *createlist()
{
struct stud_node *head, *tail, *q;
head = tail = NULL;
int num;
scanf ("%d", &num);
while (num != 0)
{
q = (struct stud_node *)malloc (sizeof (struct stud_node));
scanf ("%s %d", q->name, &q->score);
q->num = num;
q->next = NULL;
if (head == NULL)
head = q;
else
tail->next = q;
tail = q;
scanf ("%d", &num);
}
return head;
}
struct stud_node *deletelist( struct stud_node *head, int min_score )
{
struct stud_node *ptr1, *ptr2;
while (head != NULL && head->score < min_score)
{
ptr2 = head;
head = head->next;
free(ptr2);
}
if (head == NULL)
return NULL;
ptr1 = head;
ptr2 = head->next;
while (ptr2 != NULL)
{
if (ptr2->score < min_score) {
ptr1->next = ptr2->next;
free(ptr2);
}
else
ptr1 = ptr2;
ptr2 = ptr1->next;
}
return head;
}
###3.本题调试过程碰到问题及解决办法
(无)
###**6-3 链表拼接**
###1.设计思路
(1)主要描述题目算法
第一步:将两个数组的数值赋值在一个数组里。
第二步:将数组进行排序从而得到有序数组。
第三步:把数组各元素赋值回一个新链表,返回链表头结点。
###2.实验代码
struct ListNode *mergelists(struct ListNode *list1, struct ListNode *list2)
{
int num = 0;
int temp[100];
struct ListNode *p = list1;
while(p != NULL)
{
temp[num] = p->data;
num++;
p = p->next;
}
p = list2;
while(p != NULL)
{
temp[num] = p->data;
num++;
p = p->next;
}
int i,j;
for(i = 0; i < num; i++)
for(j = i + 1; j < num; j++)
{
if(temp[i] > temp[j])
{
int t;
t = temp[i];
temp[i] = temp[j];
temp[j] = t;
}
}
struct ListNode *newlist = NULL;
struct ListNode *endlist = NULL;
struct ListNode *q;
for(i = 0; i < num; i++)
{
q = (struct ListNode *)malloc(sizeof(struct ListNode));
q->data = temp[i];
if(newlist == NULL)
{
newlist = q;
newlist->next = NULL;
}
if(endlist != NULL)
{
endlist->next = q;
}
endlist = q;
endlist->next = NULL;
}
return newlist;
}```
3.本题调试过程碰到问题及解决办法
无
1总结两周里所学的知识点有哪些学会了?哪些还没有学会?
这两周我学会了指针数组,指向指针的指针 ,用指针数组处理多个字符串,命令行参数,指针作为函数的返回值,链表 ,链表的概念。
链表的常用操作###2、将PTA作业的源代码使用git提交到托管平台上,要求给出上传成功截图和你的git地址。请注意git地址应是类似

https://git.coding.net/yangzhiqun/cfsafa.git

2018c语言第3次作业的更多相关文章
- 2018c语言第1次作业
6-1 计算两数的和与差 1.设计思路 (1)主要描述题目算法 第一步:把两个数的加减法分别赋给psum和pdiff. 第二步:通过psum和pdiff的地址把值传回主函数. (2)流程图.(无) 2 ...
- 2018C语言第三次作业
要求一 2.struct sk{int a; char *str)}*p; p->str++ 中的++ 加向? ++加向srt的地址. 要求二 题目1-计算平均成绩 1.设计思路 (1)主要 ...
- 2018c语言第2次作业
1 删除字符串中数字字符 1.设计思路 (1)主要描述题目算法 第一步:先用for循环比较每个数是否符合删除条件. 第二步:如果符合就把这个数利用交换把这个数提前一位. 2.实验代码 void del ...
- 关于C语言的问卷调查(作业三)
1.你对自己的未来有什么规划?做了哪些准备? 答:我对我未来的规划就是希望能够学有所用,将来可以从事有关IT方面的,跟自己的专业对口.为此现在我需要多看一些和这个专业有关的书籍,自学一些知识,多些一些 ...
- 网络1711班 C语言第四次作业批改总结
网络1711班 C语言第四次作业批改总结 助教有话说(写在前面) 近来,有同学跟老师和助教们反映:博客作业太多太麻烦,而且对编程能力提高似乎没什么帮助?在这里我要谈一谈我的感想. 博客作业的意义? 首 ...
- 网络1711班 C语言第七次作业批改总结
网络1711班 C语言第七次作业批改总结 1.本次作业评分细则 1.1 基本要求(1分) 按时交 - 有分 未交 - 0分 迟交一周以上 - 倒扣本次作业分数 抄袭 - 0分 泛泛而谈(最多七分) 1 ...
- 网络1711班 C语言第八次作业批改总结
网络1711班 C语言第七次作业批改总结 最近在忙一些琐事,没能及时批改大家的作业,连续两次作业总结也没有很用心写,在这要给大家say sorry. 1.本次作业评分细则 1.1 基本要求(1分) 按 ...
- C语言程序设计第二次作业--顺序结构
C语言程序设计第二次作业--顺序结构 1.输出带框文字:在屏幕上输出以下3行信息. ************* Welcome ************* 源程序 #include <stido ...
- 跨语言调用Hangfire定时作业服务
跨语言调用Hangfire定时作业服务 背景 Hangfire允许您以非常简单但可靠的方式执行后台定时任务的工作.内置对任务的可视化操作.非常方便. 但令人遗憾的是普遍都是业务代码和hagnfire服 ...
随机推荐
- 网络协议TCP、Http、webservice、socket区别
网络协议TCP.Http.webservice.socket区别 http 和 webservice 都是基于TCP/IP协议的应用层协议 webservice是基于http的soap协议传输数据 w ...
- 4.5 Routing -- Setting Up A Controller
1. 改变URL可能也会改变屏幕显示哪个模板.然而,如果它们有信息去显示,模板才是有用的. 2. 在Ember.js中,一个模板从一个controller检索信息去显示. 3. 为了告诉control ...
- Java backup
待补充 ........ 0:常用头文件(待补充) import java.util.Arrays; import java.util.HashSet; import java.util.TreeSe ...
- CV 两幅图像配准
http://www.cnblogs.com/Lemon-Li/p/3504717.html 图像配准算法一般可分为: 一.基于图像灰度统计特性配准算法:二.基于图像特征配准算法:三.基于图像理解的配 ...
- [one day one question] webpack 打包报错 Cannot assign to read only property 'exports' of object '#<Object>'
问题描述: webpack 打包报错 Cannot assign to read only property 'exports' of object '#<Object>',这怎么破? 解 ...
- phpstorm 代码片段使用方法
原文链接: http://wwwquan.com/show-66-121-1.html 4.Live Templates代码片断 A)我们先介绍一个代码片段最基本的功能,我们要实现的目标是在html文 ...
- IC行业
定位IC行业,其实很简单. 我不是IC数据统计的专家,但是可以看出IC行业的发展: 在20年前,毛利是1000%,行业增长在每年20%以上 在10年前,毛利是200%,行业增长在每年10%以上 在现在 ...
- postgresql常用操作
需要安装的软件包: apt-get install postgresql postgresql-client-9.1 postgresql-common postgresql-9.1 postgres ...
- Java多线程,线程交替执行
两个线程,一个打印1-100的奇数,一个打印1-100的偶数:要求:线程1打印5个之后,线程2开始打印,线程2打印5个之后,线程1再开始打印,以此循环. Code: package com.qhong ...
- HDU 5950 Recursive sequence(矩阵快速幂)题解
思路:一开始不会n^4的推导,原来是要找n和n-1的关系,这道题的MOD是long long 的,矩阵具体如下所示 最近自己总是很坑啊,代码都瞎吉坝写,一个long long的输入写成%d一直判我TL ...