高斯-赛德尔迭代法
#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
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++;
return x;
main()
int i;
float *x;
float *GauseSeidel(float *,int);
clrscr();
printf( "x[%d]=%f\n ",i,x[i]);
getch();
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);
#include?stdio.h
int?main(void)
int?i,j=0;
for(i?=?0;i?sizeof(data);i++)
continue;
else
newdata[j]?=?data[i];
j++;
for?(i?=?0;i?j;?i++)
printf("%d",newdata[i]);
getchar();
return?0;
这个代码里面的 data[]后面赋值你就输入你的线性表 的数,代码会自己查找并删除.
请采纳!
这是数据结构中标准的线性表插入程序,但是它不是真正的c语言,而是类c哦.
status Insertlist(Sqlist L,int i,Elemtype e){
Elemtype *p; //今天这一节定义了一个*p的指针,目的是找到链表中每个结点的首地址就可以了,不用找一个结点的所用地址啊
int j;
if(L.length==L.listsize) //L.listsize是代表的表的上限值,是事先设定好的
printf("内存分配空间已不够,请重新分配:\n");
p=L.elem;//这条语句应该写在下一条语句的后面,也就是分配后的地址给到临时指针变量p中
L.elem=(Elemtype *)realloc(p,(LISTSIZE+L.listsize)*sizeof(Elemtype));
//这条语句是想一下子分配足够大的线性表空间,realloc在C中不认可的,实现时还要用malloc,这里只是设计实现的,而分配成功后L.elem只是得到分配单元的首地址,不成功则是空值.
if(!p){
printf("分配空间失败");
exit(0);
L.elem=p;//这条语句应该没用吧
L.length++;//这条语句应该放在成功插入的后面,也就是return 1;语句之前才对
L.listsize=L.listsize+LISTSIZE_INCE;
if(i1||iL.length){ //这里用到的是运算符||,代表是"或",也就是说i1代表输入时误操作造成,而iL.length代表输入的位置超出表中数据的个数,位置找不到.
printf("插入位置输入不正确,请重新操作:\n");
return 0;//代表插入失败
else{
for(j=L.length-1;j=i;j--)//从i到最后表尾顺次下移,腾出i的位置
L.elem[j+1]=L.elem[j];
L.elem[i]=e;//将数据插入到i的位置中
return 1;//代表插入成功
return 1;
#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;
int i;
for(i=0;L.leni;i++)
printf("%d - ",L.data[i]);
void main()
Sqlist *L; // Sqlist L; 这一句已经申请了空间,所以改成指针,在 cSqlist()里面申请空间
cSqlist(L,a,n);//传入L的地址才能改变L的值
typedef int datatype;
{ ElemType data[MaxSize];
int length;
}SqList;
void InitList(SqList L)
{ L.length=0;
int GetLength(SqList L)
{return L.length;
int GetElem(SqList L,int i,ElemType e)
{ if (i1||iL.length)
return 0;
{ e=L.data[i-1];
int Locate(SqList L,ElemType x)
{int i=0;
while (L.data[i]!=x)
i++;
if (iL.length)
return (0);
return(i+1);
int InsElem(SqList L,ElemType x,int i)
{ int j;
if(i1||iL.length+1)
for(j=L.length;ji;j--)
L.data[j]=L.data[j-1];
L.data[i-1]=x;
L.length++;
int DelElem(SqList L,int i)
{ int j;
if(i1||iL.length)
for(j=i;jL.length;j++)
L.data[j-1]=L.data[j];
L.length--;
}void DispList(SqList L)
{ int i;
for(i=1;i=L.length;i++)
printf("%c",L.data[i-1]);
printf("\n");
{ int i;
ElemType e;
SqList L;
InitList(L);
InsElem(L,'a',1);
printf("xian xing biao:");DispList(L);
printf("chang du:%d\n",GetLength(L));
printf("di %d ge yuan su :%c\n",i,e);
e='a';
printf("yuan su %c shi di %d ge yuan su\n",e,Locate(L,e));
DelElem(L,i);
以上就是土嘎嘎小编为大家整理的c语言设计线性函数相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!