2008-06-30 回答

//链表问题

//电话薄实现:可以输入,输出,插入,删除联系人信息.

#include

#include

#include

typedef struct student

{

char address[20];

char name[20];

char mail[7];;

char phone[10];

struct student *next;

}LNode;

void creat_list( LNode **h ) //请输入联系人信息

{

LNode * p;

int i;

char temp_number[20];

(*h)=(LNode *)malloc(sizeof(LNode));

(*h)->next=NULL;

printf("请输入联系人信息:\n");

printf("请输入联系人姓名,以000结束\n");

scanf("%s",temp_number);

while(strcmp(temp_number,"000"))

{

p=(LNode *)malloc(sizeof(LNode));

strcpy(p->name, temp_number);

printf("请输入联系人地址\n");

scanf("%s",temp_number);

strcpy(p->address, temp_number);

printf("请输入联系人电话号码\n");

scanf("%s",temp_number);

strcpy(p->phone, temp_number);

printf("请输入联系人邮政编码\n");

scanf("%s",temp_number);

strcpy(p->mail, temp_number);

printf("请输入联系人姓名,以000结束\n");

scanf("%s",temp_number);

p->next=(*h)->next;

(*h)->next=p;

}

}

//输出电话本

void print_list(LNode *L)

{

LNode *p;

printf("\t姓名\t地址\t邮政编码\t电话号码\n");

p=L->next;

//printf("\n1\n");

if(!p)

{

printf("error\n");

}

//printf("\n3\n");

while (p)

{

printf("\t%s\t%s\t%s\t%s\n", p->name, p->address, p->mail, p->phone);

p=p->next;

}

//printf("\n2\n");

}

// 在第i 个联系人前插入

void ListInsert_L(LNode *L,int i)

{

int j=0;

LNode *s,*p;

char temp_number[20];

p=L;

s=(LNode *)malloc(sizeof(LNode));

if(!s)

{

printf("error\n");

return;

}

printf("请输入联系人姓名\n");

scanf("%s",&temp_number);

strcpy(s->name, temp_number);

printf("请输入联系人地址\n");

scanf("%s",temp_number);

strcpy(s->address, temp_number);

printf("请输入联系人电话号码\n");

scanf("%s",temp_number);

strcpy(s->phone, temp_number);

printf("请输入联系人邮政编码\n");

scanf("%s",temp_number);

strcpy(s->mail, temp_number);

while (p&&j

{

p=p->next;

j++;

}

if (!p||j>i-1)

{

printf("error\n");

return;

}

s->next=p->next;

p->next=s;

}

//删除第i个联系人

void ListDelete_L(LNode *L, int i)

{

LNode *p, *q;

int j;

p = L;

j = 0;

while (p->next && j < i-1) // 寻找第 i 个结点,并令 p 指向其前趋

{

p = p->next;

j++;

}

if (!(p->next) || j > i-1) // 删除位置不合理

{

printf("error\n");

return;

}

q = p->next; p->next = q->next;

free(q);

}

void main()

{

LNode *L;

int choice,i;

printf("输入功能号choice,\n\t为1时输入联系人,\n\t为2时输出电话本,\n\t为3时插入联系人,\n\t为4时删除联系人\n\t为0时结束\n");

scanf("%d",&choice);

while(choice)

{

switch (choice)

{

case 1:creat_list(&L);

break;

case 2:print_list(L);

break;

case 3:printf("请输入要插入元素的位置i:\n");

scanf("%d",&i);

ListInsert_L(L,i);

break;

case 4:printf("请输入你要删除元素的位置\n");

scanf("%d",&i);

ListDelete_L(L, i) ;

break;

default:

printf("输入错误\n");

}

printf("输入功能号choice,\n\t为1时输入联系人,\n\t为2时输出电话本,\n\t为3时插入联系人,\n\t为4时删除联系人\n\t为0时结束\n");

scanf("%d",&choice);

}

}

求一份100行左右的C语言程序,求4个C语言程序 每个100行左右 大一水平的相关推荐

  1. 求一份DNF过三方。方法等谢谢(悬赏)

    求一份DNF过三方.方法等谢谢求一份DNF过三方.方法等谢谢求一份DNF过三方.方法等谢谢

  2. Java黑皮书课后题第5章:5.10(找出能被5和6整除的数)编写程序,显示从100到1000之间所有能被5和6整除的数,每行显示10个。数字之间用一个空格字符隔开

    5.10(找出能被5和6整除的数)编写程序,显示从100到1000之间所有能被5和6整除的数,每行显示10个.数字之间用一个空格字符隔开 题目 题目概述 破题 引申:continue break与re ...

  3. java大神请出来_求java大神,请分析以下代码,写出执行结果,并解释每行结果输出的原因。...

    求java大神,请分析以下代码,写出执行结果,并解释每行结果输出的原因.classPlate{publicPlate(){System.out.println("inPlateconstru ...

  4. c语言求100以内整除13的最大,VB程序设计的一道题,找出100以内能被3整除的所有数之和,并把值保存在一维数组中...

    VB程序设计的一道题,找出100以内能被3整除的所有数之和,并把值保存在一维数组中以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看 ...

  5. Python经典编程习题100例:第18例:求a+aa+aaa

    不要自卑,去提升实力 互联网行业谁技术牛谁是爹 如果文章可以带给你能量,那是最好的事!请相信自己 加油o~ 本人初学Python,只为熟悉语法编写,大神请勿理会 点击下面链接 Python经典编程10 ...

  6. 牛掰!100行Python,自动动手打造一款多国语言翻译软件,酷啊!

    公众号 "菜鸟学Python" 第434篇原创,设为 "星标",一起学Python! 大家在平时的学习或者工作中,往往少不了要阅读外文的文献,或者将外文的文献翻 ...

  7. c语言,通过计算行最简的方式来求行列式的值

    之前写过一个通过定义求行列式值的程序.但是新手写的,懂得都懂.昨天又看了看,我都不知道我咋写出来的了.颇有公司换人接前辈代码的感觉(虽然差了好几个量级).顺带着为了能以后考一考后辈,所以我又用行最简的 ...

  8. 免费开源的高精度OCR文本提取,支持 100 多种语言、自动文本定位和脚本检测,几行代码即可实现离线使用(附源码)

    免费开源的高精度OCR文本提取,支持 100 多种语言.自动文本定位和脚本检测,几行代码即可实现离线使用(附源码). 要从图像.照片中提取文本吗?是否刚刚拍了讲义的照片并想将其转换为文本?那么您将需要 ...

  9. 求一份李天生老师的VB.NET2010的教学视频。

    这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一 ...

  10. 求一到一百的总偶数奇数总数和的C语言程序,C语言程序求1—100之间的奇数和和偶数和...

    点击查看C语言程序求1-100之间的奇数和和偶数和具体信息 答:用oddsum=1+3+5+···+99来计算奇数和:evensum=2+4+6+···+100来计算偶数和.首先设置两个计数器:odd ...

最新文章

  1. python小白-day6 ConfigParser模块
  2. SAP PP常用表(重要)
  3. java自动获取时间 月代码_【java代码获取系统时间和执行定时任务】
  4. Android开发之常见面试题Activity跳转生命周期变化
  5. 使用泛型前 VS 使用泛型后
  6. Java的新视差控件(JavaFX)
  7. python网络爬虫开发从入门到精通_Python突击-从入门到精通到项目实战
  8. mysql 事务类型表的用法
  9. 7723java梦游游戏,渠道SDK登录
  10. 【学习笔记】莫队算法
  11. 51nod1079中国剩余定理
  12. linux文件构成,Linux文件结构及管理(1)
  13. ICESat 数据介绍
  14. 南京邮电大学电工电子基础B实验二(电气参数测量和伏安特性)
  15. 多个同1div float left换行题
  16. 不要让自己的大脑变成别人思想的跑马场-叔本华
  17. 游戏元素属性的设计原则
  18. 【Mybatis】SpringBoot 自定义TypeHandler 完整步骤
  19. 【实体对齐·综述】A Benchmarking Study of Embedding-based Entity Alignment for Knowledge Graphs
  20. vue折线图(按时间查询)

热门文章

  1. python while九九乘法表儿歌_python使用while循环实现九九乘法表
  2. Java设计模式笔记(3)抽象工厂模式
  3. rabbitmq 延迟队列_Delayed Message 插件实现 RabbitMQ 延迟队列
  4. 保存hbitmap到文件
  5. bbb sd6 无e2 修改
  6. python高级玩法_python pandas to_excel 高级玩法
  7. antd vue form 手动校验_参与《开课吧》vue训练营笔记(Day1)
  8. c语言e怎么表示_来测测!这11个C语言入门基础知识你都掌握了吗?
  9. 延边大学c语言题库,延边大学-SPOC官方网站
  10. 【转】WPF XAML X名称空间详解