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

 #define MAX_SIZE    100
 #define MIN_SIZE    32

 struct role
 {
     int number;
     char name[MAX_SIZE];
     char sex[MIN_SIZE];
     int age;
     struct role *next;
 };

 struct role *creat()
 {
     struct role *p = NULL;
     struct role *head = NULL;
     struct role *tail = NULL;

     p = (struct role *)malloc(sizeof(struct role));
     printf(" 请输入编号,按0即退出\n");
     printf("编号->");
     scanf("%d", &(p->number));

     )
         return head;

     )
     {
         printf("姓名->");
         scanf("%s", p->name);
         printf("性别->");
         scanf("%s", p->sex);
         printf("年龄->");
         scanf("%d", &(p->age));

         if (head == NULL)
         {
             head = p;
             tail = p;
         }
         else
         {
             tail->next = p;
             tail = p;
         }

     p = (struct role *)malloc(sizeof(struct role));
     printf("请输入编号,按0即退出\n");
     printf("编号->");
     scanf("%d", &(p->number));
     }
     tail->next = NULL;
     free(p);
     return head;
 }

 void display(struct role *head)
 {
     struct role *p = head;
     printf("编号        姓名        性别        年龄\n");
     while (p != NULL)
     {

         printf("%-16d%-16s%-16s%-16d\n",
             p->number, p->name, p->sex, p->age);
         p = p->next;
     }
 }

 int main(void)
 {
     struct role *head = creat();
     display(head);
     ;
 }

需要改进的还很多.

这仅仅是练习~~~~

数据结构,我来了.加油!!!

小小的修改下...(其实就是free几下...咳咳..新人,,见笑了...)

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

 #define MAX_SIZE    50
 #define MIN_SIZE    32

 struct role
 {
     int number;
     char name[MAX_SIZE];
     char sex[MIN_SIZE];
     char address[MAX_SIZE];
     int age;
     struct role *next;
 };

 struct role *creat()
 {
     struct role *head = NULL;
     struct role *p = NULL;
     struct role *tail = NULL;

     p = (struct role *)malloc(sizeof(struct role));
     printf("请输入编号,按0退出\n");
     printf("编号->");
     scanf("%d", &(p->number));

      == p->number)
     {
         free(p);
         ;
     }

      != p->number)
     {
         printf("姓名->");
         scanf("%s", p->name);

         printf("性别->");
         scanf("%s", p->sex);

         printf("地址->");
         scanf("%s", p->address);

         printf("年龄->");
         scanf("%d", &(p->age));

         if (NULL == head)
         {
             head = p;
             tail = p;
         }
         else
         {
             tail->next = p;
             tail = p;
         }
         p = (struct role *)malloc(sizeof(struct role));
         printf("请输入编号,按0退出\n");
         printf("编号->");
         scanf("%d", &(p->number));
     }
     tail->next = NULL;
     free(p);
     return head;
 }

 void display(struct role *head)
 {
     struct role *p = NULL;
     p = head;

     printf("编号        姓名        性别        住址        年龄\n");
     while (NULL != p)
     {
         printf("%-16d%-16s%-16s%-16s%-16d",
             p->number, p->name, p->sex, p->address, p->age);
         p = p->next;
     }
 }

 int main(void)
 {
     struct role *head = NULL;
     head = creat();
     display(head);
     ;
 }

最后.因为是练习,所以也没想用多文件...呼..不过这样看起来确实很乱...O.O

链表(c语言实现)--------------小练习的更多相关文章

  1. 链表c语言实现

    链表(c语言实现)--------------小练习   #include <stdio.h> #include <stdlib.h> #include <string. ...

  2. Swift语言 1小时速学教程

    本文由 张渊杰 (网名寂静)编写 Swift语言 1小时速学教程 写在前面的话 有些人可能想, 呵呵, 1小时学一门语言, 你不是搞笑吧, 我想说, 是的, 完全可以, 就要看你怎么学了 要想在1小时 ...

  3. 嵌入式C语言优化小技巧

    嵌入式C语言优化小技巧 1 概述 嵌入式系统是指完成一种或几种特定功能的计算机系统,具有自动化程度高,响应速度快等优点,目前已广泛应用于消费电子,工业控制等领域.嵌入式系统受其使用的硬件以及运行环境的 ...

  4. 数据结构之链表C语言实现以及使用场景分析

    牢骚:本篇博客两个星期前已经存为草稿,鉴于发生一些糟糕的事情,今天才基本完成.本人6月份应届毕业生一枚,毕业后当天来到帝都,之后也非常顺利,面试了俩家公司都成功了.一家做C++方面电商ERP,一家做w ...

  5. 链表(C++语言实现)

    我使用的是严蔚敏的数据结构C语言版,很反感里面的全是伪代码,平常也没怎么敲代码,链表和顺序表是数据结构的第一个实验课程,顺序表还好,但是链表就有点困难了,因为里面涉及指针的运用.我对于指针并不是很精通 ...

  6. c语言的小问题

    在c语言编程中要注意一个小问题,如果你编写scanf("%d",&n);printf("%d",n)这个你输入几就输出几,毫无疑问.但是现在问题来了?如 ...

  7. 单链表 C语言 学习记录

    概念 链接方式存储 链接方式存储的线性表简称为链表(Linked List). 链表的具体存储表示为: 用一组任意的存储单元来存放线性表的结点(这组存储单元既可以是连续的,也可以是不连续的). 链表中 ...

  8. 企业链表C语言实现

    /* * LinkList.h * * Created on: 2019年7月20日 * Author: Administrator */ #ifndef SRC_LINKLIST_H_ #defin ...

  9. C语言—期末小黄衫获奖感言

    小黄衫获奖感言 一,感谢环节 非常感谢邹欣,周筠老师给提供的小黄衫,我非常荣幸的能够获得这个奖项,我感到无比自豪.感谢两位老师对教学事业的大力支持,对我们学生的亲切关怀.同时感谢我的C语言老师彭琛(琛 ...

随机推荐

  1. 包装类(Wrapper Class)

    1)包装类.针对于原生数据类型的包装.所有的包装类(8个)对位于java.lang包下.java中的8个包装类分别是:Byte,Short,Integer,Long,Float.Double,Char ...

  2. 【转】C#中Invoke的用法

    在多线程编程中,我们经常要在工作线程中去更新界面显示,而在多线程中直接调用界面控件的方法是错误的做法,Invoke 和 BeginInvoke 就是为了解决这个问题而出现的,使你在多线程中安全的更新界 ...

  3. Oracle 11g Windows 迁移至 Linux

    OS: windows server 2008 R2 enterprise DB: 11.2.0.1.0 数据库配置: ORACLE_BASE=D:\app\Administrator ORACLE_ ...

  4. python小算法(一)

    1.长度为m的字符串a,长度为n的字符串b,(m>n) 判断b中的字母是否全在a中? O(n)最小. class Num(object): def getNum(self, m): numLis ...

  5. python 实现求和、计数、最大最小值、平均值、中位数、标准偏差、百分比。

    import sys class Stats: def __init__(self, sequence): # sequence of numbers we will process # conver ...

  6. 通过WebBrowser取得AJAX后的网页

    通常情况下通过WebBrowser的文档加载完成事件DocumentCompleted中进行判断 if (_WebBrowder.ReadyState == WebBrowserReadyState. ...

  7. Entity Framework 学习第一天

    文章是作为初学者记录之用,没有学习过的同学可以借鉴一下,至于用过和高手嘛,就算了吧.仅是入门.废话不多说了,马上新建个项目,添加Entity Framework,这个词以下将用EF代替. 本文使用的I ...

  8. JS如何获取多个相同class标签并分别再输出各自的文本

    function getClass(boo) { var span = $("span.w");//获取所有的span标签 <span class="w" ...

  9. disable_irq()与disable_irq_nosync()区别

    disable_irq关闭中断并等待中断处理完后返回, 而disable_irq_nosync立即返回.

  10. UISlider swift

    // // ViewController.swift // UILabelTest // // Created by mac on 15/6/23. // Copyright (c) 2015年 fa ...