C语言实习报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

题目一线性结构的操作

1.用线性表的顺序存储(数组)保存数据

算法的N-S图或流程图

2.用线性表的链式存储(链表)保存数据

插入:

r

include

#include

typedef struct

{

int num; //学号

char name[10]; //姓名

}student; //定义的抽象元素类型 Elemtype

typedef struct Node /*结点类型定义*/ {

student data;

struct Node *next;

}Node, *LinkList; /* LinkList为结构指针类型*/

static int count; //学生人数

//带头结点的尾插入法创建链表

void insert(LinkList head)

{

LinkList p,q; //p代表的待插元素代入最后一个元素

q=head; //q指向head结点

printf("输入学生人数:");

scanf("%d",&count);

for(int i=0;i

{

printf("\n输入第%d个学生信息:\n",i+1);

p = (LinkList)malloc(sizeof(Node)); //结点p申请一个空间

printf("输入学号:");

scanf("%d",&p->data.num); //输入结点p的数据°学号

printf("\n输入姓名:");

scanf("%s",p->); //输入结点的数据域姓名 name为数组类型数组名为首地址所有此处不需要地Ì址符号

if(i==0)

{

head->next = p; //i=0 链表中没有元素只有头节点把插入到head 之后

}

else

{

q->next = p; //链表中已有结点元素结点采用尾插入法}

q = p; //每插入一个元素就赋值于q q始终指向最后一个元素}

p->next = NULL; //设置next域为空

}

void print(LinkList head)

{

LinkList x; //定义一个链表结点

x = head->next ; //该节点指向第一个元素

printf("学生信息如下\n");

while(x) //存在结点

{

printf("学号%d 姓名%s\n",x->data.num,x->); //输出该结点的数据域学号和姓名

x = x->next ; //下一个元素

}

printf("\n");

}

//把链表中的文件信息放入文件中

//写入语句

void savetofile(LinkList head)

{

FILE*fp;

LinkList p;

p=head->next;

if((fp=fopen("d:\\st2.txt","wb+"))==NULL)

{

printf("不能打开文件");

return;

}

while(p)

{

fprintf(fp,"%d%s\r\n",p->data.num,p->);

p=p->next;

}

printf("\n写入成功\n");

}

//功能菜单提示性语句

void menu()

{

printf("\n0.退出 1.输入 2.输出 3.写入\n");

}

void main()

{

int choice;

LinkList l;

l = (LinkList)malloc(sizeof(Node)); //头结点申请空间l->next=NULL; //头结点的next为空

menu();

while(1)

{

scanf("%d",&choice); //输入一个整数

switch(choice)

{

case 1: insert(l);menu();break;

case 2: print(l); menu();break;

default: exit(0);

}

}

}

题目二排序

#include"stdio.h"

#include "stdlib.h"

#include"time.h"

#define TRUE 1

#define FALSE 0

typedef int KeyType;

typedef int OtherType;

#define MAXSIZE 200 /*线性表可能达到的最大长度*/

typedef struct

{ KeyType key;

OtherType other_data;

}RecordType;

void InsSort(RecordType r[], int length)

/* 对记录数组 r 做直接插入排序,length 为数组中待排序记录的数目*/ {

int i,j;

for (i=2; i<=length; i++)

{

相关文档
最新文档