에러좀 잡아 주세요.
Compiling...
Cpp1.cpp
cCpp1.cpp(22) error C2440 '=' cannot convert from 'bool'
to 'struct _iobuf *'
Conversion from integral type to pointer type requires
reinterpret_cast, C-style cast or function-style cast
Error executing cl.exe.
Cpp1.obj - 1 error(s), 0 warning(s)
무슨 소린지 모르겠습니다.ㅡ.ㅡ;
VC++ 6.0 입니다.
아래는 소스
#include
#include
#include
#include
#define MAX 21
main(){
FILE *fp1,*fp2;
int q;
long double name[MAX],hor[MAX],ver[MAX],num[MAX],h[MAX],type[MAX];
long double a[MAX],m[MAX],ltm[MAX],tm[MAX];
long double zd[MAX],zk[MAX];
long double na;
long double ta;
long double tpm;
long double tltm;
long double ttm;
if (fp1=fopen ("in.txt","rt") == NULL)
{
fprintf(stderr,"error\n"),exit(0);
}
fp2=fopen("out.txt","wt");
for(q=0;q
{
fscanf(fp1,"%lf%lf%lf%lf%lf%lf",&name[q],&hor[q],&ver[q],&num[q],&h
[q],&type[q]);
}
for(q=0;q
{
if(type[q] == 11)
{
a[q]=3.1415*num[q]*((hor[q]*hor[q])-(hor[q]-ver[q])*(hor[q]-ver
[q]))/4.0;
}
else
a[q]=hor[q]*ver[q]*num[q];
}
for(q=0;q
{
if(type[q]==11)
m[q]=0.3634*hor[q];
else
m[q]=a[q]*h[q];
if(type[q] == 11)
{
ltm[q]=0.094715265*a[q]*hor[q]*hor[q]*num[q];
}
else
ltm[q]=(a[q]*ver[q]*ver[q]/12.0);
}
for(q=0;q
{
ta=(ta+a[q]);
tpm=(tpm+m[q]);
tltm=(tltm+ltm[q]);
}
na = tpm/ta;
for(q=0;q
{
if(type[q] == 11)
{
if(h[q] >= na)
tm[q] = (ltm[q]+a[q]*((h[q]+0.3644*ver[q])-na)*((h[q]+0.3644*ver[q])-
na))*num[q];
else
tm[q] = (ltm[q]+a[q]*(na-(h[q]+0.3644*ver[q]))*(na-(h[q]+0.3644*ver
[q])))*num[q];
}
else{
if(h[q] >= na)
tm[q] = ltm[q]+2*ver[q]*hor[q]*(h[q]-na)*(h[q]-na)*num[q];
else
tm[q] = ltm[q]+2*ver[q]*hor[q]*(na-h[q])*(na-h[q])*num[q];
}
}
for(q=0;q
{
ttm=ttm+tm[q];
}
for(q=0;q
if(h[q]>=na)
{
zd[q]=(tm[q]/(h[q]-na));
zk[q]=0;
}
else{
zd[q]=0;
zk[q]=(ttm/na);
}
}
for(q=0;q
{
fprintf(fp2,"%.0lf\t%.0lf\t%.0lf\t%.0lf\t%.0lf\t%.0lf\t%.0lf\n",name
[q],a[q],m[q],tm[q],ltm[q],zd[q],zk[q]);
} /*out.txt 파일에 저장*/
printf("%lf\n%lf\n",zd[0],tm[11]);
return 0;
}
Re: 에러좀 잡아 주세요.
연산자 우선순위 문제군요.
if 문 안에서 '=' 연산자와 '==' 연산자 중 어떤게 우선순위가 높은지 확
인해 보세요.
덧붙여) 자신이 의도하는 연산 순서를 명확히 하기 위해서는 각각의 연산
에 대해 괄호로 묶어 놓으면 이러한 문제도 생기지 않고 코드의 가독성도
높아집니다.
Re: 에러좀 잡아 주세요.
if ((fp1=fopen ("in.txt","rt")) == NULL)
댓글 달기