重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
高斯-賽德爾迭代法
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名與空間、網站空間、營銷軟件、網站建設、思明網站維護、網站推廣。
#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();
}
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?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語言,而是類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 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); //
}
typedef int datatype;
#define maxsize 1024
typedef struct
{ 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;
else
{ e=L.data[i-1];
return 1;
}
}
int Locate(SqList L,ElemType x)
{int i=0;
while (L.data[i]!=x)
i++;
if (iL.length)
return (0);
else
return(i+1);
}
int InsElem(SqList L,ElemType x,int i)
{ int j;
if(i1||iL.length+1)
return 0;
for(j=L.length;ji;j--)
L.data[j]=L.data[j-1];
L.data[i-1]=x;
L.length++;
return 1;
}
int DelElem(SqList L,int i)
{ int j;
if(i1||iL.length)
return 0;
for(j=i;jL.length;j++)
L.data[j-1]=L.data[j];
L.length--;
return 1;
}void DispList(SqList L)
{ int i;
for(i=1;i=L.length;i++)
printf("%c",L.data[i-1]);
printf("\n");
}
void main()
{ int i;
ElemType e;
SqList L;
InitList(L);
InsElem(L,'a',1);
InsElem(L,'c',2);
InsElem(L,'a',3);
InsElem(L,'e',4);
InsElem(L,'d',5);
InsElem(L,'b',6);
printf("xian xing biao:");DispList(L);
printf("chang du:%d\n",GetLength(L));
i=3;GetElem(L,i,e);
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));
i=4;printf("shan chu di %d ge yuan su\n",i);
DelElem(L,i);
printf("xian xing biao:");DispList(L);
}