#include<bits/stdc++.h>
using namespace std;
#define PI 3.1415926
double const R=0.250,miu=PI*4,w=miu/R;
double k,xit,A[7],B[7];double tan(double x);
int N;
double dcc(int x,double y,double z)//电磁场
{
double o;
k=w*x*y;
z=z*PI/180.0f;
o=tan(z);
k=k/o;
return k;
}//物理实验的公式
int main()
{
freopen("a.in","r",stdin);
freopen("a.out","w",stdout);
for(int i=1;i<=5;i++)
{
cin>>N>>xit;//N为匝数,xit为角度
A[i]=dcc(N,50,xit);
cout<<A[i]<<" ";
}
cout<<endl;
for(int i=1;i<=5;i++)
{
cin>>N>>xit;
B[i]=dcc(30,N,xit);
cout<<B[i]<<" ";
}
cout<<endl;
//以下为为了检验错误写的,当把这段代码单独运行时,程序无错误
//当这段代码写上去的时候,就会发现错误,总能得到 -1.73205
//例如输入45,计算tan(45),得到-1.73205
double rrr,rr,r;
cin>>rrr;
rr=rrr*PI/180.0f;
r=tan(rr);
cout<<r<<endl;
return 0;
}
计算tan得到的值错误
#include<bits/stdc++.h>
using namespace std;
#define PI 3.1415926
double const R=0.250,miu=PI*4,w=miu/R;
double k,xit,A[7],B[7];double tan(double x);
int N;
double dcc(int x,double y,double z)//电磁场
{
double o;
k=w*x*y;
z=z*PI/180.0f;
o=tan(z);
k=k/o;
return k;
}//物理实验的公式
int main()
{
/*
freopen("a.in","r",stdin);
freopen("a.out","w",stdout);
for(int i=1;i<=5;i++)
{
cin>>N>>xit;//N为匝数,xit为角度
A[i]=dcc(N,50,xit);
cout<<A[i]<<" ";
}
cout<<endl;
for(int i=1;i<=5;i++)
{
cin>>N>>xit;
B[i]=dcc(30,N,xit);
cout<<B[i]<<" ";
}
cout<<endl;
*/
//以下为为了检验错误写的,当把这段代码单独运行时,程序无错误
//当这段代码写上去的时候,就会发现错误,总能得到 -1.73205
//例如输入45,计算tan(45),得到-1.73205
double rrr,rr,r;
cin>>rrr;
rr=rrr*PI/180.0f;
r=tan(rr);
cout<<r<<endl;
return 0;
}
// Output
45
1
可能是别的代码引起的。我注释掉别的代码,值计算tan(45°),结果输出1,是对的
你为什么要定义这么多的全局变量呢?非必要不要定义这么多的全局变量。
如果单独测试没问题的话,那就是cin读取到其他信息了。在33行之后加一句话
fflush(stdin); 清空下std的缓存区