PAT 乙级 1009

PAT 乙级 10091009说反话(20分)将一个英语的句子按照单词的顺序颠倒,我的想法又是用链表

大家好,又见面了,我是你们的朋友全栈君。

1009 说反话 (20 分)

将一个英语的句子按照单词的顺序颠倒,我的想法又是用链表?。先将每个单词找到,按照头插法存下来,然后再将链表输出。有点呆,没事,当练习一下链表。滑稽

代码如下:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

typedef struct vocabulary
{
	char *str;
	struct vocabulary *next;
}vocab;

void insert(vocab **h,char *str,int len);

int main()
{
	char str[82] = {0};
	char *t;
	int i = 0;
	int n1;
	vocab *h = (vocab *)malloc(sizeof(vocab));
	
	h->next = NULL;
	vocab *p;
	fgets(str,82,stdin);
	n1 = 0;
	do
	{
		if(str[i] == ' ' || str[i] == '\n') //|| i == 79)
		{
			t = (char*)malloc(sizeof(char) * i - n1);
			strncpy(t,str + n1, i - n1);
			insert(&h,t,i - n1);
			free(t);
			n1 = i + 1;
		}
	}while(str[++i]);
	
	p = h->next;
	vocab *pre = h;
	while(p)
	{
		printf("%s",p->str);
		if(p->next)
			putchar(' ');
		pre = pre->next;
		p = pre->next;
		free(pre);
	}

	return 0;
}

void insert(vocab **h,char *str,int len)
{
	vocab *p = (vocab *)malloc(sizeof(vocab));
	p->str = (char*)malloc(sizeof(char) * len);
	p->next = NULL;
	strcpy(p->str,str);
	p->next = (*h)->next;
	(*h)->next = p;
}


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145088.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • oracle误删数据怎么恢复_oracle数据库恢复数据

    oracle误删数据怎么恢复_oracle数据库恢复数据学习数据库时,我们只是以学习的态度,考虑如何使用数据库命令语句,并未想过工作中,如果误操作一下,都可能导致无可挽回的损失。当我在工作中真正遇到这些问题时,我开始寻找答案。今天主要以oracle数据库为例,介绍关于表中数据删除的解决办法。(不考虑全库备份和利用归档日志)删除表中数据有三种方法:·delete(删除一条记录)·drop或truncate删除表格中数据1.delete

    2022年9月23日
    2
  • js实现的A星算法[通俗易懂]

    js实现的A星算法[通俗易懂]一、前言最近在写js的slg游戏,需要用到a星算法。之前用python写过https://blog.csdn.net/qq_39687901/article/details/80753433,现在再用js写一遍。二、源码//二维数组functionArray2D(w,h,num){vardata=[];vardefault_num=num|…

    2022年9月27日
    5
  • 海思Hi3798处理器参数,Hi3798芯片详细信息介绍

    海思Hi3798处理器参数,Hi3798芯片详细信息介绍Hi3798CV200集成4核64位高性能CortexA53处理器、内置NEON加速引擎,强大的CPU处理能力可以满足各种差异化的业务需求。在码流兼容性、在线视频播放的流畅性、图像质量以及整机性能方面保持业界最好的用户体验。支持4K2KP60@10bit超高清视频解码和显示,支持H.265/HEVC、H.264/AVC、AVS+、MVC、MPEG2、MPEG4、VC-1、VP6、VP…

    2022年6月30日
    79
  • 二叉树前序遍历、中序遍历、后序遍历、层序遍历的直观理解

    二叉树前序遍历、中序遍历、后序遍历、层序遍历的直观理解0.写在最前面希望大家收藏:本文持续更新地址:https://haoqchen.site/2018/05/23/go-through-binary-tree/    复习到二叉树,看到网上诸多博客文章各种绕,记得头晕。个人觉得数学、算法这些东西都是可以更直观简洁地表示,然后被记住的,并不需要靠死记硬背。本文的程序基本来源于《大话数据结构》,个人感觉是一本非常好的书,推荐去看。…

    2022年6月12日
    30
  • 【Redis】持久化机制RDB和AOF

    【Redis】持久化机制RDB和AOF【Redis】持久化机制RDB和AOF

    2022年4月25日
    30
  • 什么叫小字辈_小字辈老电影观后感

    什么叫小字辈_小字辈老电影观后感原题链接本题给定一个庞大家族的家谱,要请你给出最小一辈的名单。输入格式:输入在第一行给出家族人口总数 N(不超过 100 000 的正整数) —— 简单起见,我们把家族成员从 1 到 N 编号。随后第二行给出 N 个编号,其中第 i 个编号对应第 i 位成员的父/母。家谱中辈分最高的老祖宗对应的父/母编号为 -1。一行中的数字间以空格分隔。输出格式:首先输出最小的辈分(老祖宗的辈分为 1,以下逐级递增)。然后在第二行按递增顺序输出辈分最小的成员的编号。编号间以一个空格分隔,行首尾不得有多余空格。

    2022年8月8日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号