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)流程图
![](https://images2018.cnblogs.com/blog/1239182/201804/1239182-20180422224306018-136759193.png)
![](https://images2018.cnblogs.com/blog/1239182/201804/1239182-20180422224319506-517815500.png)
![](https://images2018.cnblogs.com/blog/1239182/201804/1239182-20180422224329335-1376048956.png)
###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次作业的更多相关文章

  1. 2018c语言第1次作业

    6-1 计算两数的和与差 1.设计思路 (1)主要描述题目算法 第一步:把两个数的加减法分别赋给psum和pdiff. 第二步:通过psum和pdiff的地址把值传回主函数. (2)流程图.(无) 2 ...

  2. 2018C语言第三次作业

    要求一 2.struct sk{int a; char *str)}*p;   p->str++ 中的++ 加向? ++加向srt的地址. 要求二 题目1-计算平均成绩 1.设计思路 (1)主要 ...

  3. 2018c语言第2次作业

    1 删除字符串中数字字符 1.设计思路 (1)主要描述题目算法 第一步:先用for循环比较每个数是否符合删除条件. 第二步:如果符合就把这个数利用交换把这个数提前一位. 2.实验代码 void del ...

  4. 关于C语言的问卷调查(作业三)

    1.你对自己的未来有什么规划?做了哪些准备? 答:我对我未来的规划就是希望能够学有所用,将来可以从事有关IT方面的,跟自己的专业对口.为此现在我需要多看一些和这个专业有关的书籍,自学一些知识,多些一些 ...

  5. 网络1711班 C语言第四次作业批改总结

    网络1711班 C语言第四次作业批改总结 助教有话说(写在前面) 近来,有同学跟老师和助教们反映:博客作业太多太麻烦,而且对编程能力提高似乎没什么帮助?在这里我要谈一谈我的感想. 博客作业的意义? 首 ...

  6. 网络1711班 C语言第七次作业批改总结

    网络1711班 C语言第七次作业批改总结 1.本次作业评分细则 1.1 基本要求(1分) 按时交 - 有分 未交 - 0分 迟交一周以上 - 倒扣本次作业分数 抄袭 - 0分 泛泛而谈(最多七分) 1 ...

  7. 网络1711班 C语言第八次作业批改总结

    网络1711班 C语言第七次作业批改总结 最近在忙一些琐事,没能及时批改大家的作业,连续两次作业总结也没有很用心写,在这要给大家say sorry. 1.本次作业评分细则 1.1 基本要求(1分) 按 ...

  8. C语言程序设计第二次作业--顺序结构

    C语言程序设计第二次作业--顺序结构 1.输出带框文字:在屏幕上输出以下3行信息. ************* Welcome ************* 源程序 #include <stido ...

  9. 跨语言调用Hangfire定时作业服务

    跨语言调用Hangfire定时作业服务 背景 Hangfire允许您以非常简单但可靠的方式执行后台定时任务的工作.内置对任务的可视化操作.非常方便. 但令人遗憾的是普遍都是业务代码和hagnfire服 ...

随机推荐

  1. 线程,协程,IO模型

    理论: 1.每创造一个进程,默认里面就有一个线程 2.进程是一个资源单位,而进程里面的线程才是CPU上的一个调度单位 3.一个进程里面的多个线程,是共享这个进程里面的资源的 4.线程创建的开销比进程要 ...

  2. 利用ssh-copy-id复制公钥到多台服务器

    http://www.cnblogs.com/panchong/p/6027138.html?utm_source=itdadao&utm_medium=referral # 连接新主机时,不 ...

  3. 使用spring cache和ehcache之前必须了解的

    好长时间没写博客了,真的是没时间啊.ps:其实就是懒!!接下来几篇要写下缓存,这里主要写下ehcache与spring整合的内容,包括aop形式的缓存,基于注解的缓存,页面缓存这三方面吧.在这之前先要 ...

  4. Mysql优化原则_小表驱动大表IN和EXISTS的合理利用

    //假设一个for循环 ; $i < ; $i++) { ; $i < ; $j++) { } } ; $i < ; $i++) { ; $i < ; $j++) { } } ...

  5. 20145315 《Java程序设计》第十周学习总结

    20145315 <Java程序设计>第十周学习总结 教材学习内容总结 网络概述 为了能够方便的识别网络上的每个设备,网络中的每个设备都会有一个唯一的数字标识,这个就是IP地址.IP地址实 ...

  6. Qt+json

    Json文件是这样: { "first fruit": { "describe":"an apple", "icon": ...

  7. 如何解决ubuntu报的错误:You must put some 'source' URIs in your sources.list

    答:添加deb-src开头的源,如 deb-src http://cn.archive.ubuntu.com/ubuntu/ bionic-updates multiverse

  8. CodeForces 450B Jzzhu and Sequences(矩阵快速幂)题解

    思路: 之前那篇完全没想清楚,给删了,下午一上班突然想明白了. 讲一下这道题的大概思路,应该就明白矩阵快速幂是怎么回事了. 我们首先可以推导出 学过矩阵的都应该看得懂,我们把它简写成T*A(n-1)= ...

  9. 算法准备-分治算法解决第k位数的线性查找

    由作业士兵排队问题引出的 在一个划分成网格的操场上,n个士兵散乱地站在网格点上.网格点由整数最表(x,y)表示.士兵可以沿着网格边上.下.左.右移动一步,但在同一时刻一个网格上只能有一名士兵.按照军官 ...

  10. Python学习札记(二十三) 函数式编程4 sorted

    参考:sorted NOTE 1.sorted,快速排序,时间复杂度O(nlogn)渐进最优. #!/usr/bin/env python3 L = [] for i in range(10): L. ...