c语言exe已停止工作_C语言的exe停止运行
#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了,死循环了(找了半天啊)
其他回答
暂无其它回答!