网站建设资讯

NEWS

网站建设资讯

用c语言编写线性函数 用c语言实现线性表的基本操作

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

float k,b,x,y;

创新互联建站云计算的互联网服务提供商,拥有超过13年的服务器租用、服务器托管、云服务器、雅安服务器托管、网站系统开发经验,已先后获得国家工业和信息化部颁发的互联网数据中心业务许可证。专业提供云主机、雅安服务器托管域名注册、VPS主机、云服务器、香港云服务器、免备案服务器等。

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

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

printf("请输入x:");

scanf("%f",x);

y=k*x十b;

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

C语言编写线性表相关的

#include stdio.h

#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;

}

在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语言写一个函数输出线性表中指定范围的数字

#include stdio.h

int main(void)

{

int data[] = {2,5,15,30,1,40,17,50,9,21,32,8,41,22,49,31,33,18,50,5} ;

int newdata[30];

int i,j=0;

for(i = 0;i sizeof(data);i++)

{

if(data[i]=10data[i]=30)

{

continue;

}

else

{

newdata[j] = data[i];

j++;

}

}

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

{

printf("%d",newdata[i]);

}

getchar();

return 0;

}

这个代码里面的 data[]后面赋值你就输入你的线性表 的数,代码会自己查找并删除。

data[i]=10data[i]=30

这句话就是范围意思是  大于10小于30的数,删除后的数组会存在newdata数组里面

请采纳!

用c语言程序写一个函数,求线性代数方程组AX=b,要有通用性。非常感谢帮忙。

高斯-赛德尔迭代法

#include stdio.h

#include conio.h

#include alloc.h

#include math.h

#define N 100

float *GauseSeidel(float *a,int n)

{

int i,j,nu=0;

float *x,dx;

x=(float *)malloc(n*sizeof(float));

for(i=0;i =n-1;i++)

x[i]=0.0;

do

{

for(i=0;i =n-1;i++)

{

float d=0.0;

for(j=0;j =n-1;j++)

d+=*(a+i*(n+1)+j)*x[j];

dx=(*(a+i*(n+1)+n)-d)/(*(a+i*(n+1)+i));

x[i]+=dx;

}

if(nu =N)

{

printf( "迭代发散\n ");

exit(1);

}

nu++;

}

while(fabs(dx) 1e-6);

return x;

}

main()

{

int i;

float *x;

float c[12]={5,2,1,8,2,8,-3,21,1,-3,-6,1};

float *GauseSeidel(float *,int);

x=GauseSeidel(c,3);

clrscr();

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

printf( "x[%d]=%f\n ",i,x[i]);

getch();

}


新闻标题:用c语言编写线性函数 用c语言实现线性表的基本操作
网站链接:http://cdweb.net/article/hgpohs.html