如何用c语言定义线性函数 c语言定义线性表

C语言编写线性表相关的

#include stdio.h

创新互联主营新绛网站建设的网络公司,主营网站建设方案,成都app软件开发公司,新绛h5微信平台小程序开发搭建,新绛网站营销推广欢迎新绛等地区企业咨询

#include malloc.h

#include stdlib.h#define TRUE 1

#define FALSE 0

#define OK 1

#define ERROR 0

#define INFEASIBLE -1

#define OVERFLOW -2

#define LIST_INIT_SIZE 100

#define LISTINCREMENT 10

typedef int ElemType;

//typedef struct

//{

// Elemtype *list;

// int size;

// int maxsize;

//}SqList;typedef struct List

{

ElemType *list;

int size;

int maxsize;

}List,*SqlList;typedef struct sNode

{

ElemType data;

struct sNode *next;

}sNode,*LinkList;int InitList_Sq(List L)

{

L.list=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));

if(!L.list)

exit(OVERFLOW);

L.size=0;

L.maxsize=LIST_INIT_SIZE;

return OK;

}int ListInsert_Sq(List L,int i,ElemType e)

{

ElemType *p,*q,*newbase;

if(i1||iL.size+1)

return ERROR;

if(L.size=L.maxsize)

{

newbase=(ElemType *)realloc(L.list,(L.maxsize+LISTINCREMENT)*sizeof(ElemType));

if(!newbase)

exit(OVERFLOW);

L.list=newbase;

L.maxsize+=LISTINCREMENT;

}

q=(L.list[i-1]);

for(p=(L.list[L.size-1]);p=q;--p)

*(p+1)=*p;

*q=e;

++L.size;

return OK;

}int ListDelete_Sq(List L,int a,int b) /*删除*/

{

ElemType *x,*y;

int j=0;

while(jL.size)//ji-1

{

if(L.list[j]=aL.list[j]=b)

{

x=(L.list[j]);//要删除的数

y=L.list+L.size-1;

for(++x;x=y;++x)

*(x-1)=*x;

--L.size;

}

else

++j;

}

/*if(!p||ji-1)

return ERROR;*/ /*int i;

ElemType *p;

if(i1||iL.size)

return ERROR;

p=(L.list[i-1]);

e=*p;

q=L.list+L.size-1;

for(++p;p=q;++p)

*(p-1)=*p;

--L.size;*/

return OK;

}

int ListDestory_Sq(List L)

{

free(L.list);

L.size=0;

return OK;

}int InitList_Link(LinkList L,int n)

{

int i;

LinkList p;

L=(LinkList)malloc(sizeof(sNode));

L-next=NULL;

/*for(i=n;i0;--i)

p=(LinkList)malloc(sizeof(sNode));

scanf("%d",p-data);

p-next=L-next;

L-next=p;*/

return OK;

}int ListInsert_Link(LinkList L,int i,ElemType e)

{

LinkList p=L,s;

int j=0;

while(pji-1)

{

p=p-next;

++j;

}

if(!p||ji-1)

return ERROR;

s=(LinkList)malloc(sizeof(sNode));

s-data=e;

s-next=p-next;

p-next=s;

return OK;

}

int ListDelete_Link(LinkList L,int i,ElemType e)

{

LinkList p=L,q;

int j=0;

while(p-nextji-1)

{

p=p-next;

++j;

}

if(!(p-next)||ji-1)

return ERROR;

q=p-next;

p-next=q-next;

e=q-data;

free(q);

return OK;

}

int ListDestory_Link(LinkList L)

{

LinkList p,r=L;

p=L-next;//L为头结点

while(p)

{

r-next=p-next;

free(p);

p=r-next;

}

return OK;

}int CountEqualx(LinkList L,int x)

{

int sum=0;

LinkList p;

p=L-next;//L为头结点

while(p)

{

if(p-data==x)

sum++;

p=p-next;

}

return sum;

}int SelectMax(LinkList L)

{

int max;

LinkList p=L-next;

if(p)

{

//p=L-next;//L为头结点

max=p-data;

while(p)

{

if(p-datamax)

max=p-data;

p=p-next;

}

return max;

}

else

{

printf("\n链表为空!\n");

exit(1);

}

}int main()

{

int i,j,a,b,x;

List L;

LinkList Link,p;

ElemType e; //顺序表操作

InitList_Sq(L);

for(i=0;i10;i++)

ListInsert_Sq(L,1,i);//在第1个位置插入i

printf("\n顺序表删除前: ");

for(i=0;iL.size;i++)

printf("%d ",L.list[i]);

printf("\n输入a的值:\na=");

scanf("%d",a);

printf("\n输入b的值:\nb=");

scanf("%d",b);

ListDelete_Sq(L,a,b); //删除大于等于a 小于等于b的数

printf("\n顺序表删除后: ");

for(i=0;iL.size;i++)

printf("%d ",L.list[i]);

printf("\n"); //链表操作

InitList_Link(Link,10);

for(i=0;i10;i++)

ListInsert_Link(Link,1,i);//在第1个位置插入i

printf("\n链表最大元素为:%d\n",SelectMax(Link));

printf("\n输入x:");

scanf("%d",x);

printf("\n链表中元素等于x的值有%d个\n",CountEqualx(Link,x));

printf("\n链表删除前: ");

p=Link-next;//L为头结点

while(p)

{

printf("%d ",p-data);

p=p-next;

} printf("\n删除第几个元素:");

scanf("%d",x); ListDelete_Link(Link,x,e);

printf("\n链表删除后: ");

p=Link-next;//L为头结点

while(p)

{

printf("%d ",p-data);

p=p-next;

}

printf("\n链表删除的元素为: %d\n",e);

ListDestory_Sq(L);

ListDestory_Link(Link);

system("pause");

return 0;

}

c语言如何定义一个线性函数y=kx+b的系数k,b,从键盘读取这两个系数,并读取任意?

float k,b,x,y;

printf("请输入k,b:");

scanf("%f%f",k,b);

printf("请输入x:");

scanf("%f",x);

y=k*x十b;

printf("y=%f\n",y);

C语言如何定义一个函数

c语言中一个完整的函数由函数首部和函数体构成,而且定义函数时两者都是必不可少的。

函数定义的一般形式如下:

类型标识符

函数名(形参表列)

//

这是函数首部

//

以下{

}内的是函数体

{

说明部分

执行部分

}

举例说明如下:

//

定义一个不带返回值的函数

//

函数功能:输出形参的值

void

fun(int

a,

int

b)

{

printf("%d,

%d\n",

a,

b);

}

//

定义一个带返回值的函数

//

函数功能:返回2个整数数的最大值

int

fun(int

a,

int

b)

{

return

ab

?

a

:

b;

}

如何在C语言中定义一个函数?

需要准备的材料分别有:电脑、C语言编译器。

1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。

2、在test.cpp文件中,输入C语言代码:int fun(){return 1;}。

3、编译器运行test.cpp文件,此时成功调用fun()函数输出了内容。

c语言如何定义函数

函数是用户与程序的接口,在定义一个函数前,首先要清楚以下三个问题。1) 函数的功能实现及算法选择。算法选择会在后续文章详细讲解,本节重点关注函数的功能实现。一般选取能体现函数功能的函数名,且见名知意,如求和函数的函数名可取为 add,求最大值的函数名可取为 max,排序函数可取名为 sort 等。2) 需要用户传给该函数哪些参数、什么类型,即函数参数。3) 函数执行完后返回给调用者的参数及类型,即函数返回值类型。 函教定义格式 函数定义的一般格式为: 返回类型 函数名 (类型参数1,类型参数2,…) {函数体 }也可以不含参数,不含参数时,参数表中可写关键字 void 或省略,为规范起见,教程中对没有参数的函数,参数表中统一写 void。例如: 类型 函数名 () {函数体 }等价于: 类型 函数名 (void) //建议的书写方式 {函数体 } 如果该函数没有返回类型,则为 void 类型。例如: void add (int x,int y) {printf ("sum=%d\n", x+y); } 除了 void 类型外,在函数体中,均需要显式使用 return 语句返回对应的表达式的值。 函教返回值 函数的值是指调用函数结束时,执行函数体所得并返回给主调函数的值。 关于函数返回值说明如下。1) 带返回值的函数,其值一般使用 return 语句返回给调用者。其格式为: return 表达式;或者 return (表达式);例如: int add (int a, int b) {return (a + b); //return 后为表达式 } 函数可以含一个或多个 return 语句,但每次调用时只能执行其中一个 return 语句。例如,求整数绝对值的函数: int f (int n) //含多个return语句,但每次调用只执行一个 {if (n = 0)return n;elsereturn -n; }

在vc++6.0下使用c语言编写创建线性表函数,错误很多,具体如下。 求高手指导!

#include stdio.h

#include stdlib.h // malloc

#define Max 100

typedef struct

{

int data[Max];

int len;

}Sqlist;

int cSqlist(Sqlist **L,int a[],int n)

{

int i=0;

*L=(Sqlist *)malloc(sizeof(Sqlist));

for(i=0;in;i++)

{

(*L)-data[i]=a[i];

}

(*L)-len=n;

return 1;

}

void display(Sqlist L)

{

int i;

for(i=0;L.leni;i++)

{

printf("%d - ",L.data[i]);

}

}

void main()

{

Sqlist *L; // Sqlist L; 这一句已经申请了空间,所以改成指针,在 cSqlist()里面申请空间

int a[5]={1,2,3,4,5};

int n=5;

cSqlist(L,a,n);//传入L的地址才能改变L的值

display(*L); //

}


当前文章:如何用c语言定义线性函数 c语言定义线性表
标题链接:http://scyanting.com/article/hieoji.html