C语言程序练习Word格式.docx
- 文档编号:18262986
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:15
- 大小:16.67KB
C语言程序练习Word格式.docx
《C语言程序练习Word格式.docx》由会员分享,可在线阅读,更多相关《C语言程序练习Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
}
return0;
doublefun(doublex,doubley)
returny-2*x/y;
doubleEuler(doubledx,doublex,doubley)
returndx*fun(x,y);
doubleTrapz(doubledx,doublex,doubley)
doubledy=Euler(dx,x,y);
return(dy+Euler(dx,x+dx,y+dy))/2;
打开txt文件
#include"
stdio.h"
string.h"
voidREADDAT(char(*t)[12])
FILE*fp;
inti;
fp=fopen("
E:
\\Hello.txt"
"
r"
);
for(i=0;
i<
10;
i++)
{
fgets(t[i],12,fp);
}
fclose(fp);
voidmain()
chart[10][12]={0};
READDAT(t);
puts(t[i]);
}
2014415
函数指针的练习
#include<
voidMyFun(int,int);
//这个申明也可写成:
voidMyFun(int);
void(*FunP)(int,int);
//也可申明成void(*FunP)(intx),但习惯上一般不这样。
intmain(intargc,char*argv[])
MyFun(10,1);
//这是直接调用MyFun函数
FunP=MyFun;
//将MyFun函数的地址赋给FunP变量
(*FunP)(20,1);
//这是通过函数指针变量FunP来调用MyFun函数的。
FunP(1111,1);
//*FunP等于MyFun的功能
return0;
voidMyFun(intx,inty)//这里定义一个MyFun函数
%d\n"
x+y);
函数指针和指针函数结合起来用
int*(*pFun)(int*,int*);
int*fun(int*p,int*q);
intmain(intargc,char*argv[])
inta;
intb;
pFun=fun;
pleaseinputtwonums:
"
scanf("
%d,%d"
&
a,&
b);
pFun(&
int*fun(int*p,int*q)
intt;
t=*p;
*p=*q;
*q=t;
*p,*q);
20140418
雅克比迭代
intmain()
doubleA[100][100];
doubleb[100];
doublef[100];
doubleB[100][100];
doubleD[100][100];
doubleL[100][100];
doubleU[100][100];
doublex[100];
doublex2[100];
doubletmp;
intm,n,i,j,k;
pleaseinputtheArrayArowandcolumn:
%d%d"
m,&
n);
for(i=0;
m;
for(j=0;
j<
n;
j++)
scanf("
%lf"
A[i][j]);
printf("
%lf"
A[i][j]);
\n"
}
pleaseinputtheArrayB:
b[i]);
i++)
{
b[i]);
if(i==j)
D[i][j]=A[i][j];
else
D[i][j]=0;
D[i][j]);
printf("
{
if(i>
j)
L[i][j]=-A[i][j];
L[i][j]=0.0;
L[i][j]);
if(i<
U[i][j]=-A[i][j];
U[i][j]=0;
U[i][j]);
for(j=0;
{
if(i==j)
B[i][j]=0.0;
else
B[i][j]=-A[i][j]/D[i][i];
}
B[i][j]);
f[i]=b[i]/D[i][i];
printf("
f[i]);
输入初始值:
scanf("
x[i]);
输入迭代次数:
%d"
a);
for(k=0;
k<
a;
k++)
x2[i]=x[i];
tmp=0.0;
tmp+=B[i][j]*x2[i];
x[i]=tmp+f[i];
x[i]);
2014年4月23号
高斯数值积分计算程序
math.h>
doublegauss(double(*func)(doublex),doublea,doubleb,intn);
intmain()
doublefunction_name(double);
doublea,b;
intn;
printf("
请输入积分上限b:
&
请输入积分下限:
a\n"
请输入积分的点数n:
doubleans;
ans=gauss(function_name,a,b,n);
ans=%lf"
ans);
doublegauss(double(*func)(doublex),doublea,doubleb,intn)/*高斯求积*/
/*高斯点及其求积系数列表*/
doublex1[1]={0.0};
doubleA1[1]={2};
doublex2[2]={-0.5573503,0.5573503};
doubleA2[2]={1,1};
doublex3[3]={-0.7745967,0.0,0.7745967};
doubleA3[3]={0.555556,0.888889,0.555556};
doublex4[4]={0.3399810,-0.3399810,0.8611363,-0.8611363};
doubleA4[4]={0.6521452,0.6521452,0.3478548,0.3478548};
doublex5[5]={0.0,0.5384693,-0.5384693,0.9061799,-0.9061799};
doubleA5[5]={0.5688889,0.4786287,0.4786287,0.2369269,0.2369269};
double*p,*t;
switch(n)
case1:
p=x1;
t=A1;
break;
case2:
p=x2;
t=A2;
case3:
p=x3;
t=A3;
case4:
p=x4;
t=A4;
case5:
p=x5;
t=A5;
default:
intputwrong!
doubleg=0;
inti;
for(i=0;
i<
i++)
g+=(*func)((b-a)*p[i]/2+(a+b)/2)*t[i];
g*=(b-a)/2;
returng;
}
doublefunction_name(doublex)
return(sqrt(x));
2014年4月25号
LU分解程序
intmain(intargc,char*argv[])
inti,j;
intk;
floats=0;
floatm=0;
intdim;
floatA[100][100];
floatL[100][100];
floatU[100][100];
请输入要分解的初始矩阵的维数:
dim);
请输入要分解的初始矩阵:
for(i=1;
=dim;
for(j=1;
j<
j++)
%f"
%f"
//LandU
L[i][j]=0;
L[i][j]=1;
for(j=1;
U[1][j]=A[1][j];
}
L[i][1]=A[i][1]/U[1][1];
//l和U
for(i=2;
for(j=i;
s=0;
for(k=1;
k<
=i-1;
k++)
s+=L[i][k]*U[k][j];
U[i][j]=A[i][j]-s;
for(j=i+1;
m=0;
for(k=1;
m+=L[j][k]*U[k][i];
L[j][i]=(A[j][i]-m)/U[i][i];
分解以后的矩阵L:
分解以后矩阵U:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 练习