此程序为作业题:

但不忍丢弃成果;

所以记一下:

哦,对了,有一个易错点:在链表里,字符要用字符数组,不能用单个字符。

#include<stdio.h>
#include<stdio.h>
struct menu * head;
int n=0;
struct menu
{
 char name[10];
 int no;
 struct menu* next;
 };
 void add()
 {
  struct menu* p1,*p2;
  p1=p2=(struct menu*)malloc(sizeof(struct menu));
  head->next=p1;
  printf("按(0,0)结束\n");
  printf("请输入菜名和价格\n");
  scanf("%s%d",p2->name,&p2->no);
  while(p2->no!=0)
  {
  n=n+1;
  p1->next=p2;
  p1=p2;
  p2=(struct menu*)malloc(sizeof(struct menu));
  scanf("%s%d",p2->name,&p2->no);
  }
  p1->next=NULL;
 }
 void print()
 {
  struct menu* p1;
  p1=head->next;
  while(p1!=NULL)
  {
   printf("%s\t%d\n",p1->name,p1->no);
   p1=p1->next;
  }
 }
 void cha_ru()
 {
  int i,a;
 struct menu *p1,*p2;
 p1=p2=(struct menu *)malloc(sizeof(struct menu));
 p1=head;
 printf("请输入你要插入的节点前的位置");
 scanf("%d",&a);
 for(i=0;i<a-1;i++)
 p1=p1->next;
 scanf("%s%d",p2->name,&p2->no);
 p2->next=p1->next;
 p1->next=p2;
}
void shanchu()
{
 int i,a;
 struct menu *p1;
 p1=(struct menu *)malloc(sizeof(struct menu));
 p1=head;
 printf("请输入你要删除的位置\n");
 scanf("%d",&a);
 for(i=0;i<a-1;i++)
 p1=p1->next;
 p1->next=p1->next->next;
}
 int main()
 {
  int a=0;
   head=(struct menu*)malloc(sizeof(struct menu));
  head->next=NULL;
  printf("请输入你要的功能\n");
  printf("输入按1\n输出按2\n删除按3\n插入按4\n");
  while(1)
{
   scanf("%d",&a);
   switch(a)
   {
    case 1:add();break;
    case 2:print();break;
    case 3:shanchu();break;
    case 4:cha_ru();break;
   }
   if(a==' ')
   break;
    printf("请继续你要的功能\n");
  }

c语言的一个简单的链表的更多相关文章

  1. 用C语言编写一个简单的词法分析程序

    问题描述: 用C或C++语言编写一个简单的词法分析程序,扫描C语言小子集的源程序,根据给定的词法规则,识别单词,填写相应的表.如果产生词法错误,则显示错误信息.位置,并试图从错误中恢复.简单的恢复方法 ...

  2. 用Go语言实现一个简单的聊天机器人

    一.介绍 目的:使用Go语言写一个简单的聊天机器人,复习整合Go语言的语法和基础知识. 软件环境:Go1.9,Goland 2018.1.5. 二.回顾 Go语言基本构成要素:标识符.关键字.字面量. ...

  3. 用 C 语言编写一个简单的垃圾回收器

    人们似乎觉得编写垃圾回收机制是非常难的,是一种仅仅有少数智者和Hans Boehm(et al)才干理解的高深魔法.我觉得编写垃圾回收最难的地方就是内存分配,这和阅读K&R所写的malloc例 ...

  4. 用Verilog语言实现一个简单的MII模块

    项目中要求简单地测试一下基于FPGA的模拟平台的RJ45网口,也就是需要实现一个MII或者RMII模块.看了一下官方网口PHY芯片的官方文档,还是感觉上手有点障碍,想在网络上找些参考代码看看,最后只在 ...

  5. 数据结构|-用C#实现一个简单的链表

    我们知道C#中是没有链表的,我们可以自己实现一个 整个单链表能实现的功能有: 功能 方法 返回值 备注 获取链表长度 GetLength() int 返回值是链表长度 清空链表 Clear() voi ...

  6. socket实例C语言:一个简单的聊天程序

    我们老师让写一个简单的聊天软件,并且实现不同机子之间的通信,我用的是SOCKET编程.不废话多说了,先附上代码: 服务器端server.c #include <stdio.h> #incl ...

  7. 【阿菜做实践】利用go语言写一个简单的Pow样例

    本篇博客的主要内容是用go写一个简单的Proof-of-Work共识机制,不涉及到网络通信环节,只是一个本地的简单demo.开发IDE用的是JB Golang. 整个项目的文件结构如下: PoWdem ...

  8. go 语言实现一个简单的 web 服务器

    学习Go语言的一些感受,不一定准确. 假如发生战争,JAVA一般都是充当航母战斗群的角色.一旦出动,就是护卫舰.巡洋舰.航母舰载机.预警机.电子战飞机.潜艇等等浩浩荡荡,杀将过去.(JVM,数十个JA ...

  9. go语言实现一个简单的登录注册web小程序

    最近学习golang也有一段时间了,基础差不多学了个大概,因为本人是java程序员,所以对web更感兴趣.根据<go web编程>中的例子改编一个更简单的例子,供新手参考,废话不多说,上菜 ...

随机推荐

  1. OOP: One pont of view of OOP与基于算法设计的区别

    ..摘自<C++网络编程 卷1:运用ACE和模式消除复杂性> <C++ Network Programming Volume 1 Mastering Complexity with ...

  2. 问题(the question)

    I want to know: 1. 软件开发最主要的目的 是什么? 2. 软件开发是否同样需要模,和架构? 3.软件开发与其他程序的需求分析是否相似,有什么不同之处? 4.软件开发最常用的计算机语言 ...

  3. SVM实践

    在Ubuntu上使用libsvm(附上官网链接以及安装方法)进行SVM的实践: 1.代码演示:(来自一段文本分类的代码) # encoding=utf8 __author__ = 'wang' # s ...

  4. C++ 画星号图形——空心梯形(核心代码记录)

    b=a; ;c<=a;c++) { ;d<=a-c;d++) printf(" "); ;e<=b;e++) ||c==a) printf("*&quo ...

  5. MongoDB学习记录

    一.操作符 "$lt" :"<""$lte" :"<=""$gt" :"> ...

  6. JAVA枚举的作用与好处

    枚举是一种规范它规范了参数的形式,这样就可以不用考虑类型的不匹配并且显式的替代了int型参数可能带来的模糊概念 枚举像一个类,又像一个数组.Enum作为Sun全新引进的一个关键字,看起来很象是特殊的c ...

  7. Kafka 解析

    Kafak采用硬盘顺序写入和内存映射文件技术提示性能.即便是顺序写入硬盘,硬盘的访问速度还是不可能追上内存.所以Kafka的数据并不是实时的写入硬盘,它充分利用了现代操作系统分页存储来利用内存提高I/ ...

  8. 常见的JAVA包

    java.lang 提供利用 Java 编程语言进行程序设计的基础类.最重要的类是 Object(它是类层次结构的根)和 Class(它的实例表示正在运行的应用程序中的类). java.util 包含 ...

  9. CLion 2016.2.2 注册激活码

    43B4A73YYJ-eyJsaWNlbnNlSWQiOiI0M0I0QTczWVlKIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiI ...

  10. zx一篇让Java程序猿随时可以翻看的Oracle总结

    一篇让Java程序猿随时可以翻看的Oracle总结 前言:Oracle学习也有十几天了,但是呢,接下来还要学习许多其他的东西,并不能提步不前,所以在此总结了以下Oracle中常用的命令和语句,没有语法 ...