C语言高手!输入scanf一组数据,用TC2.0运行有结果输出,而用C++运行此程序则没有结果输出??

#include <stdio.h>
#include <math.h>
float f1(float X, float Y)
{ float G;
if(X/Y<1.55) G=1/(1+1.85*X/Y);
else G=0.4/(X/Y);
return (G);
}
main()
{ float Aa,Ac,fa,fc,r,L,L0,Le,e0,d,B,M2,M1,N,O,N0,G1,G0,Ge,Nu,u;
int n;
float f1(float X, float Y);
printf("zhouxinshifoushouya shishuru1 foushuru0:");
scanf("%d",&n);
printf("u=");
scanf("%f",&u);
scanf("%f,%f,%f,%f,%f,%f,%f,%f,%f,%f",&Aa,&Ac,&fa,&fc,&r,&L,&d,&M2,&M1,&N);
L0=u*L;
e0=M2/N;
O=Aa*fa/(Ac*fc);
N0=Ac*fc*(1+sqrt(O)+O);
G0=1-0.115*sqrt(L0/d-4);
Ge=f1(e0,r);
if(n==1) {Le=L0;G1=1-0.115*sqrt(Le/d-4);}
else {B=M1/M2;Le=(0.5+0.3*B+0.2*B*B)*L0;G1=1-0.115*sqrt(Le/d-4);}
if(G1*Ge<G0) Nu=G1*Ge*N0;
else Nu=G0*N0;
printf("B=%f,G1=%f,G0=%f,G1*Ge=%f,Ge=%f,e0=%f,Le/L0=%f\n",B,G1,G0,G1*Ge,Ge,e0,Le/L0);
printf("Nu=%f\n",Nu);
}

以上是此程序
输入:
0
0.8
29706.0,472948.0,215.0,19.5,388.0,10000.0,800.0,500000.0,-125000.0,15000.0
能不能推荐下VC6.0的免费下载地址

第1个回答  2008-10-02
int main() //一般定义为int型
{ float Aa,Ac,fa,fc,r,L,L0,Le,e0,d,B,M2,M1,N,O,N0,G1,G0,Ge,Nu,u;
int n;
float f1(float X, float Y);
printf("zhouxinshifoushouya shishuru1 foushuru0:");
scanf("%d",&n);
printf("u=");
scanf("%f",&u);
scanf("%f,%f,%f,%f,%f,%f,%f,%f,%f,%f",&Aa,&Ac,&fa,&fc,&r,&L,&d,&M2,&M1,&N);
L0=u*L;
e0=M2/N;
O=Aa*fa/(Ac*fc);
N0=Ac*fc*(1+sqrt(O)+O);
G0=1-0.115*sqrt(L0/d-4);
Ge=f1(e0,r);
if(n==1) {Le=L0;G1=1-0.115*sqrt(Le/d-4);}
else {B=M1/M2;Le=(0.5+0.3*B+0.2*B*B)*L0;G1=1-0.115*sqrt(Le/d-4);}
if(G1*Ge<G0) Nu=G1*Ge*N0;
else Nu=G0*N0;
printf("B=%f,G1=%f,G0=%f,G1*Ge=%f,Ge=%f,e0=%f,Le/L0=%f\n",B,G1,G0,G1*Ge,Ge,e0,Le/L0);
printf("Nu=%f\n",Nu);

return 0; //C++需要返回值
}
第2个回答  2008-10-02
你说的C++是VC60.0么?
假如是,那么按照你提供的数据,输入完毕,运行后,得到的结果如下:
B=-0.250000,G1=0.929577,G0=0.718309,
G1*Ge=0.802096,Ge=0.862861,e0=33.333332,Le/L0=0.437500

Nu=16725131.000000

会不会是你的VC6.0出问题了?本回答被提问者采纳
第3个回答  2008-10-02
C++需要返回值的,定义main时 如果无返回 用 void main()
第4个回答  2008-10-02
相似回答