c语言exe已停止工作_C语言的exe停止运行

原问题:C语言的exe停止运行
分类:编程开发 > 最后更新时间:【2017-03-30 01:13:58】
问题补充:

#include<stdio.h>

#include<stdlib.h>

int main()

{

double lagrange(int n,double xa,int b);

double y,h[200],E[200],aa[200],t[200];

double stress_r1_in[200],stress_r1_out[200],stress_r2_in[200],stress_r2_out[200];

double stress_n1_in[200],stress_n1_out[200],stress_n2_in[200],stress_n2_out[200],stress_r[200],stress_n[200];

double m[200],a[200],b[200],c[200],d[200],T[200],M;

int i,n;

for(i=0;i<=174;i++)

{

if(i<=150)

n=2;

else

n=3;

y=lagrange(n,i,1);

h[i]=y;

}

for(i=0;i<=174;i++)

{

if(i<=150)

n=2;

else

n=3;

y=lagrange(n,i,2);

E[i]=y;

}

for(i=0;i<=174;i++)

{

if(i<=150)

n=2;

else

n=3;

y=lagrange(n,i,3);

t[i]=y;

}

for(i=0;i<=174;i++)

{

if(i<=150)

n=2;

else

n=3;

y=lagrange(n,i,4);

aa[i]=y;

}

for(i=1;i<=174;i++)

{

m[i]=(i-1)/i;

a[i]=(m[i]*m[i]+1)/2;

b[i]=(1-m[i]*m[i])/2;

c[i]=(2.6*m[i]*m[i]+0.7*m[i]*m[i]*m[i]*m[i]-3.3)/8;

d[i]=(2.6*m[i]*m[i]-0.7*m[i]*m[i]*m[i]*m[i]-1.9)/8;

T[i]=8.0e-9*i*i*(3.14*12500/30)*(3.14*12500/30);

}

stress_r1_in[1]=200.0;

stress_n1_in[1]=200.0;

for(i=1;i<=173;i++)

{

stress_r1_out[i]=a[i]*stress_r1_in[i]+b[i]*stress_n1_in[i]+c[i]*T[i];

stress_n1_out[i]=b[i]*stress_r1_in[i]+a[i]*stress_n1_in[i]+d[i]*T[i];

stress_r1_in[i+1]=h[i]/h[i+1]*stress_r1_out[i];

stress_n1_in[i+1]=E[i+1]/E[i]*stress_n1_out[i]+0.3*(h[i]/h[i+1]-E[i+1]/E[i])*stress_r1_out[i]+E[i+1]*(aa[i]*t[i]-aa[i+1]*t[i+1]);

}

stress_r2_in[1]=300.0;

stress_n2_in[1]=300.0;

for(i=1;i<=173;i++)

{

stress_r2_out[i]=a[i]*stress_r1_in[i]+b[i]*stress_n1_in[i];

stress_n2_out[i]=b[i]*stress_r1_in[i]+a[i]*stress_n1_in[i];

stress_r2_in[i+1]=h[i]/h[i+1]*stress_r1_out[i];

stress_n2_in[i+1]=E[i+1]/E[i]*stress_n1_out[i]+0.3*(h[i]/h[i+1]-E[i+1]/E[i])*stress_r1_out[i]+E[i+1]*(aa[i]*t[i]-aa[i+1]*t[i+1]);

}

M=(140-stress_r1_out[173])/stress_r2_out[173];

for(i=1;1<=174;i++)

{

stress_r[i]=stress_r1_in[i]+M*stress_r2_in[i];

stress_n[i]=stress_n1_in[i]+M*stress_n2_in[i];

printf("%lf\n",h[i]);

}

return 0;

}

double lagrange(int n,double xa,int b)

{

int i,k,j,m;

double l,p=0.0;

double r[10]={0,50,100,140,150,158,166,174},h[10]={4.86,3.90,2.97,2.24,1.86,1.60,1.80,2.30};

double E[10]={0.162,0.162,0.157,0.148,0.140,0.137,0.134,0.130};

double t[10]={165,165,250,360,400,430,460,500};

double a[10]={16.5,16.5,17.1,18.2,19.0,19.4,19.7,20.3};

double y[10];

if(xa<=100)

j=0,m=2;

else if(xa<=150)

j=2,m=4;

else

j=4,m=7;

for(k=j;k<=m;k++)

{ l=1.0;

for(i=j;i<=m;i++)

{

if(i!=k)

{

l=l*(xa-r[i])/(r[k]-r[i]);

}

}

switch(b)

{

case 1:y[k]=h[k];break;

case 2:y[k]=E[k];break;

case 3:y[k]=t[k];break;

case 4:y[k]=a[k];break;

}

p=p+l*y[k];

}

return(p);

}

最佳答案

程序有一个非常简单的错

在main程序的最后部分

for(i=1;1<=174;i++)

{

正确的是

for(i=1;i<=174;i++)

{

你把i写成1了,死循环了(找了半天啊)

最佳答案由网友  whoami1978  提供
公告: 为响应国家净网行动,部分内容已经删除,感谢网友理解。
19

分享到:

其他回答

暂无其它回答!

    推荐