1

逆序输出的数列(10分)

题目内容:

你的程序会读入一系列的正整数,预先不知道正整数的数量,一旦读到-1,就表示输入结束。然后,按照和输入相反的顺序输出所读到的数字,不包括最后标识结束的-1。

输入格式:

一系列正整数,输入-1表示结束,-1不是输入的数据的一部分。

输出格式:

按照与输入相反的顺序输出所有的整数,每个整数后面跟一个空格以与后面的整数区分,最后的整数后面也有空格。

输入样例:

1 2 3 4 -1

输出样例:

4 3 2 1

时间限制:2000ms内存限制:128000kb
 
 #define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
struct num
{
int num;//数字
struct num *next;//下一个结点
};
typedef struct num NUM;//简写 //涉及4个函数
NUM *Init();//创建头结点,头结点不存储数据
void Add(NUM *head, int num);//插入数据到尾部
void Print(NUM *head);//顺序打印,非递归
NUM *Dao(NUM *head);//链表逆序,返回新的头指针 void main()
{
int num = ;
NUM *head = Init();//创建头结点,头结点不存储数据 scanf("%d", &num); while (num != -)//输入 - 1表示结束
{
Add(head, num);
scanf("%d", &num);
} NUM *newhead = Dao(head);//链表逆序,返回新的头指针 Print(newhead);//顺序打印,非递归 system("pause");
} NUM *Init()//创建头结点,头结点不存储数据
{
NUM *head = (NUM*)malloc(sizeof(NUM));//创建头结点
if (head == NULL)
{
printf("分配内存失败\n");
return NULL;
}
else
{
head->next = NULL;//最后指向NULL
return head;//返回头指针
}
} void Add(NUM *head, int num)//插入数据到尾部
{
NUM *p = head;//第1步,创建指针p,用于移动
if (p == NULL)
{
return;
}
while (p->next != NULL)//遍历
{
p = p->next;
} NUM *new = (NUM*)malloc(sizeof(NUM));//第2步,创建指针new,用于存储新数据
if (new == NULL)
{
printf("分配内存失败\n");
return;
}
new->num = num;//学号
new->next = NULL;//最后指向NULL p->next = new;//第3步,p指向new
} void Print(NUM *head)//顺序打印,非递归
{
NUM *p = head;//创建指针,用于移动
int count = ;//计数器 while (p->next != NULL)
{
if (count)
{
printf(" ");
}
printf("%d", p->next->num);
p = p->next;
count++;
}
} NUM * Dao(NUM *head)//链表逆序,返回新的头指针
{
NUM * p = NULL;//创建指针p
NUM * q = head->next;//创建指针q
NUM * r = NULL;//创建指针r while (q)
{
r = q->next;//指针r指向q的下一个结点
q->next = p;//指针q指向前面结点
p = q;//移动指针p
q = r;//移动指针q
} NUM *newhead = (NUM *)malloc(sizeof(NUM));//创建指针newhead,作为新头指针
newhead->next = p;//新头指针指向指针p
return newhead;//返回新头指针
}

网易云课堂_C语言程序设计进阶_第5周:链表_1逆序输出的数列的更多相关文章

  1. 网易云课堂_C语言程序设计进阶_第三周:结构:结构、类型定义、联合

    3.1 枚举 3.2 结构 3.3 类型定义 3.1 枚举 枚举是一种用户定义的数据类型,它用关键字enum以如下语法来表明: enum 枚举类型名字{名字0,...,名字n}; 枚举类型名字通常并不 ...

  2. 网易云课堂_C语言程序设计进阶_第6周:程序结构

    6.1 全局变量 6.2 编译预处理 6.3 大程序结构 6.1 全局变量 全局变量 定义在函数外面的变量是全局变量 全局变量具有全局的生存期和作用域 它们与任何函数都无关 在任何函数内部都可以使用它 ...

  3. 网易云课堂_C语言程序设计进阶_第8周:图形交互程序

    8.2函数指针 8.2函数指针 #include <stdio.h> #include <stdlib.h> void f(int i) { printf("void ...

  4. 网易云课堂_C语言程序设计进阶_第七周:文件:文件访问、格式化输入输出、二进制输入输出

    7.1文件 7.2底层操作 7.1文件 格式化的输入输出 printf %[flags][width][.prec][hIL]type Flag 含义 - 左对齐 + 在前面放+或- (space) ...

  5. 网易云课堂_C语言程序设计进阶_第5周:链表

    5.1可变数组 5.2链表 5.1可变数组 Resizable Array Think about a set of functions that provide a mechanism of res ...

  6. 网易云课堂_C语言程序设计进阶_期末考试编程题部分

    1 字符串循环右移(5分) 题目内容: 输入一个字符串和一个非负整数N,要求将字符串循环右移N次. 输入格式: 输入在第1行中给出一个字符串,以'#'表示结束,‘#’不是字符串的一部分,字符串的长度未 ...

  7. 网易云课堂_C语言程序设计进阶_第二周:指针:取地址运算和指针、使用指针、指针与数组、指针与函数、指针与const、指针运算、动态内存分配_2信号报告

    2 信号报告(5分) 题目内容: 无线电台的RS制信号报告是由三两个部分组成的: R(Readability) 信号可辨度即清晰度. S(Strength)    信号强度即大小. 其中R位于报告第一 ...

  8. 网易云课堂_C语言程序设计进阶_第一周:数据类型:整数类型、浮点类型、枚举类型_1计算分数精确值

    1 计算分数精确值(10分) 题目内容: 由于计算机内部表达方式的限制,浮点运算都有精度问题,为了得到高精度的计算结果,就需要自己设计实现方法. (0,1)之间的任何浮点数都可以表达为两个正整数的商, ...

  9. 网易云课堂_C语言程序设计进阶_第四周:ACL图形库

    创建ACLLib程序 #include"acllib.h" #include<stdio.h> int Setup1() { initWindow(, );//初始化窗 ...

随机推荐

  1. php中__autoload()方法详解

    [导读] PHP在魔术函数__autoload()方法出现以前,如果你要在一个程序文件中实例化100个对象,那么你必须用include或者require包含进来100个类文件,或者你把这100个类定义 ...

  2. linux下小记

    今天碰到一个问题 记录下 /usr/bin/ld: cannot find ld 和ldconfig的区别 使用makefile编译的时候提示ld提示某个so找不到 当时使用ldconfig查了下 发 ...

  3. 1016. 部分A+B

    /* * Main.c * 1016. 部分A+B * Created on: 2014年8月30日 * Author: Boomkeeper *******测试通过********* */ #inc ...

  4. DTU软硬件方案

        经过周末的思考以及已有的经验,准备将DTU研发项目命名为QN100,确定了初步的软硬件方案,产品名称大家如果有好的名字欢迎提供.     硬件:     采用STM32F101RD为主处理器, ...

  5. tempo 2.0 学习记录

    最近在做项目时使用了tempo,感觉还不错,但是发现网上对于tempo 2.0 的介绍比较少,我也是在GitHub才找到了比较完整的使用说明,我也简单记录一下自己的使用过程,重新学习一下tempo 2 ...

  6. VC操作Image的三种方法(收集)

    忘记从哪来收集过来的资料了,暂且不管是哪位老兄写的,只道一声谢谢. 仅管VC有提供相应的API和类来操作bmp位图.图标和(增强)元文件,但却不支持jpg.gif和png等格式的图片,而这几种格式却是 ...

  7. 本地化SilverLight应用程序(多语言支持)

    原文 http://www.cnblogs.com/seaworm/archive/2010/11/30/1892325.html 利用资源文件(Resources File)使SilverLight ...

  8. Sublime-text 自己定义快捷键攻略

    好吧.我承认今天非常悲剧,本来上午就写好了这篇博文,公布之后,在自己的博文里怎么也找不到. 所以如今又又一次写了一份.希望大家能顶一下吧...Nothing is better than your s ...

  9. Acess错误:"文件共享锁定数溢出"

    对于ACCESS数据库,如果通过大量的SQL来操作数据库或者直接操作大量的数据时,经常会出现这种错误: "文件共享锁定数溢出" 原因如下:     Access数据库,同时操作大量 ...

  10. 微软build 2015

    1.apple Object-C项目和安卓项目经过移植可以运行在windows上,演示看起来有些卡. 2.平台大统一,Universal Windows App,10亿台设备,这个很重要,以后恐怕离不 ...