我的编程空间,编程开发者的网络收藏夹
学习永远不晚

作业(3)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

作业(3)

指针是一个地址,指向的是个类型:

我们知道,c语言中的类型有int,char,bool(这个不常用),一般我们使用int,char就可以满足一般的类型需求的,如果对于变量的长度过大,就是用long ,float,double,关于各个类型使用的的长度问题,可以使用sizeof(int)或者sizeof(long)来查看各个类型,在系统中的小。(这个东西我并不清楚。。)

而指针就是一个8个字节(64系统)。

1、int(*p)[3];------ptr为指向含3个元素的一维×××数组的指针变量(是指针)

2、int *p[3];-------定义指针数组p,该数组由3个指向整型数据的指针元素组成(是数组)

3、int(*)[3];--------实际上可以看作是一种数据类型。也就是第一个(int(*p)[3])中定搜索义的p的数据类型

* 在C语言里称为指针运算符,它用来获取所指地址的具体内容。

ptr是个地址,*ptr 取得该地址处存储的变量的值

链表我的理解要包含以下特征:

(1).由n个节点离散分配;(2).每个节点通过指针连接(3)每一个节点由一个前驱节点和一个后驱节点(4).首节点没有前驱节点,尾节点没有后驱节点;

满足上面的4条,我们就称为链表;链表既然由很多个节点,那节点又由什么组成?节点由两个部分组成,一是数据域,用来存放有效数据;二是指针域,用来指向下一个节点;下面用C语言来构建链表数据结构,首先应该构造出节点,然后再把所有的节点连起来,就构成了链表;

源代码:

#include  
#include  
#include  
#include
#define N 3
typedef struct node
{
   char name[20];
   struct node *link;
}stud;
stud * creat(int n)
{
   stud *p,*h,*s;
   int i;
   if((h=(stud *)malloc(sizeof(stud)))==NULL)
   {
      printf("不能分配内存空间!");
      exit(0);
   }
   h->name[0]='\\\\0';
   h->link=NULL;
   p=h;
   for(i=0;i   {
     if((s= (stud *) malloc(sizeof(stud)))==NULL)
     {
        printf("不能分配内存空间!");
        exit(0);
     }
     p->link=s;
     printf("请输入第%d个人的姓名:",i+1);
     scanf("%s",s->name);
     s->link=NULL;
     p=s;
   }
   return(h);
}
stud * search(stud *h,char *x)
{
   stud *p;
   char *y;
   p=h->link;
   while(p!=NULL)
   {
     y=p->name;
     if(strcmp(y,x)==0)
       return(p);
     else p=p->link;
   }
   if(p==NULL)
     printf("没有查找到该数据!");
};i++)
.h>.h>.h>.h>


stud * search2(stud *h,char *x) 

{
   stud *p,*s;
   char *y;
   p=h->link;
   s=h;
   while(p!=NULL)
   {
     y=p->name;
     if(strcmp(y,x)==0)
       return(s);
     else
     {
       p=p->link;
       s=s->link;
     }
   }
   if(p==NULL)
    printf("没有查找到该数据!");
}
void insert(stud *p)
{
   char stuname[20];
   stud *s;
   if((s= (stud *) malloc(sizeof(stud)))==NULL)
   {
     printf("不能分配内存空间!");
     exit(0);
   }
   printf("请输入你要插入的人的姓名:");
   scanf("%s",stuname);
   strcpy(s->name,stuname);
   s->link=p->link;
   p->link=s;
}


void del(stud *x,stud *y)
{
  stud *s;
  s=y;
  x->link=y->link;
  free(s);
}



void print(stud *h)
{
   stud *p;
   p=h->link;
   printf("数据信息为:\\\\n");
   while(p!=NULL)
   {
     printf("%s \\\\n",&*(p->name));
     p=p->link;
   }
}



void quit()
{
  exit(0);
}
void menu(void)
{
    system("cls"); 
    printf("\\\\t\\\\t\\\\t单链表C语言实现实例\\\\n");
    printf("\\\\t\\\\t|--------------------|\\\\n");
    printf("\\\\t\\\\t| |\\\\n");
    printf("\\\\t\\\\t| [1] 建 立 新 表 |\\\\n");
    printf("\\\\t\\\\t| [2] 查 找 数 据 |\\\\n");
    printf("\\\\t\\\\t| [3] 插 入 数 据 |\\\\n");
    printf("\\\\t\\\\t| [4] 删 除 数 据 |\\\\n");
    printf("\\\\t\\\\t| [5] 打 印 数 据 |\\\\n");
    printf("\\\\t\\\\t| [6] 退 出 |\\\\n");
    printf("\\\\t\\\\t| |\\\\n");
    printf("\\\\t\\\\t| 如未建立新表,请先建立! |\\\\n");
    printf("\\\\t\\\\t| |\\\\n");
    printf("\\\\t\\\\t|-------------------|\\\\n");
    printf("\\\\t\\\\t 请输入你的选项(1-6):");
}
main()
{
    int choose;
    stud *head,*searchpoint,*forepoint;
    char fullname[20];


    while(1)
    {
      menu();
      scanf("%d",&choose);
      switch(choose)
      {
        case 1:
           head=creat(N);
           break;
        case 2:
     printf("输入你所要查找的人的姓名:");
           scanf("%s",fullname);
           searchpoint=search(head,fullname);
           printf("你所查找的人的姓名为:%s",*&searchpoint->name);
           printf("\\\\n按回车键回到主菜单。");
           getchar();getchar();
           break;
        case 3: printf("输入你要在哪个人后面插入:");
           scanf("%s",fullname);
           searchpoint=search(head,fullname);
           printf("你所查找的人的姓名为:%s",*&searchpoint->name);
           insert(searchpoint);
           print(head);
           printf("\\\\n按回车键回到主菜单。");
           getchar();getchar();
           break;
        case 4:
     print(head);
           printf("\\\\n输入你所要删除的人的姓名:");
           scanf("%s",fullname);
           searchpoint=search(head,fullname);
           forepoint=search2(head,fullname);
           del(forepoint,searchpoint);
           break;
        case 5:
     print(head);
           printf("\\\\n按回车键回到主菜单。");
           getchar();getchar();
           break;
        case 6:quit();
           break;
        default:
     printf("你输入了非法字符!按回车键回到主菜单。");
           system("cls"); 
           menu();
           getchar();
      }
   }
}


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

作业(3)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

作业(3)

指针是一个地址,指向的是个类型:我们知道,c语言中的类型有int,char,bool(这个不常用),一般我们使用int,char就可以满足一般的类型需求的,如果对于变量的长度过大,就是用long ,float,double,关于各个类型使用
2023-01-31

作业3

用指针处理链表这是属于算法上的内容,会有专门的课程:数据结构、算法技巧与分析,算法的特点就是比较抽象,个人感觉,要学会善于画图和上机实践,当然,你最好得有扎实的语法基础,这样做起来才不会吃力。算法在程序设计当中是驾驭在语言之上,是整个程序的
2023-01-31

python--作业3

作业题目:6题程序:测试:7题程序:测试:
2023-01-31

Python作业3

1.   ***程序  2.    ***程序   3.    ***程序     测试
2023-01-31

c作业3

#1、如输入:Z2009-AShanghaiZ则输出:lenth = 8;事例说明:从A到Z的子串为SHanghai,其长度是8.2、实现整数n(n<=10)的算式:n!+(n-1)!+(n-2)!...+3!+2!+1!输入 n = 3:
2023-01-31

Linux作业(3)

1、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello();[root@localhost~]# ls /etc/rc.d/init.d/functions  netconsole 
2023-01-31

第3周 作业

1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。[root@Client ~]# whoroot     pts/0        2016-08-07 00:40 (192.168.137.2)u
2023-01-31

3月9日作业

2016年3月9日作业1、信息系统集成有哪些特点?1)、以满足用户需求为根本出发点;2)不只是设备选择和供应,它是具有高技术含量的工程过程,要面向用户提供全面解决方案,其核心是软件;3)系统集成最终交付物是一个完整的系统而不是一个分立的产品
2023-01-31

3月16日作业

第六章的重点整理请阅附件(手写版) 论项目的计划与监控说明(框架)摘要:本人任某项目的项目经理期间,通过项目管理知识,对项目的计划与监控进行管理(略)正文:一、项目计划管理    项目计划管理是在项目整体管理知识领域,计划过程组    1.
2023-01-31

3月26日作业

2016年3月26日作业一、质量管理1、质量管理基本原则?答:1、以实用为核心的多元要求。2、系统工程。3、职工参与管理。4、管理层和第一把手重视。5、保护消费者权益。6、面向国际市场。2、质量管理的目标?答:1、顾客满意度。2、预防胜于检
2023-01-31

2016年3月25日作业

软考信息系统监理师,2016年3月25日作业一、进度控制1、进度控制分为哪四个步骤?答:计划(Plan)、执行(Do)、检查(Check)、行动(Action)   2、进度计划编制的目的是什么?哪个最重要?答:1)  保证暂时获利以补偿已
2023-01-31

3月9日高项作业

(高项)3月9日作业1、  信息系统集成包括哪些特点:(1)信息系统集成要以满足用户需求为根本出发点。(2)信息系统集成不只是设备选择和供应,更重要的,它是具有高技术含量的工程过程,要面向用户需求提供全面解决方案,其核心是软件。(3)系统集
2023-01-31

linux运维-第3周作业

本周作业内容:1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。#who | tr -s [[:space:]] | cut -d" " -f1 | sort -u[root@hiallServer
2023-01-31

2016年3月7日作业

第一章 信息化基础知识1、信息化两个层次:本体论,认识论2、国家信息化体系6要素:信息技术应用、信息资源、信息网络、信息技术和产业、信息化人才、信息化政策法规和标准规范3、电子政务建设的指导原则:(1)统一规划,加强领导(2)需求主导,突出
2023-01-31

Linux之进程管理(3)作业管理

Linux之进程管理(3)作业管理Linux的作业控制介绍:前台作业:通过终端启动,且启动后一直占据终端;后台作业:可通过终端启动,但启动后转入后台运行(释放终端);让进程作业运行在后台:1、对运行中的进程:使用Ctrl+z2、尚未启动的作
2023-01-31

毕业3年

在我工作3年之后,我还是不知方向为何。08年毕业的时候,选择了一个对职业发展十分不利的地方——学校,在那个地方,无法想象的无望,过了1年零3个月。09年换工作的时候,是经过介绍,所以很简单地就进了,网络安全,在那个地方,无序和混乱是一个代表
2023-01-31

ACL---毕业论文--3

2011年毕业论文,提供下载WORD版本,在博客中有部分图片显示不了,请谅解,提供完整word 下载。地址:http://down.51cto.com/data/243498
2023-01-31

Python -- 操作字符串[3/3]

1,splitlines()yuan@ThinkPad-SL510:~$ ipython -nobanner  In [1]: multiline_string = """This    ...: is    ...: a multilin
2023-01-31

学习:IT专业词汇-3

六、著名软件产品 DOS:Disk Operating System,磁盘操作系统。提到DOS,只要稍有电脑知识的人对它都会有所了解。DOS的主要功能是管理电脑的硬件和软件资源,方便用户对电脑进行操作。使用DOS操作电脑,需要用户记住大量命
2023-01-31

python作业

创建以用户登录程序:保存用户的用户名与密码 新建用户时,判断用户是否已经存在,若存在则报错; 登录系统是,确保用户名存在于系统中,密码正确,有三次机会,超过三次报错冷却 #!/usr/bin/env python# coding:utf-8
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录