再次发现漏洞,为什么if else 前一种写法和后一种 一个对一个错。什么原因??
别看下面的程序很杂乱,我只是把下面这块程序在整个程序中的位子移了一下,一个对一个错 为什么呢》?????第一种:下面这种是错的:
程序代码:#include"stdio.h"
#include"math.h""
int main()
{
double a,b,n,m,c,d;
double x,y,t;
printf("请依次输入第一个长方形的长和宽:\n");
scanf("%f %f",&a,&b);
printf("请依次输入第二个长方形的长和宽:\n");
scanf("%f %f",&n,&m);
c=sqrt(1.0*n);
d=sqrt(1.0*m/10);
if(a>c&&b>d||a==c&&b>d||a>c&&b==d||a==c&&b==d)
printf("第一个长方形可以放进第二个长方形里");
x=sqrt(a*a+b*b);
y=1.0*c*a/x;
t=(a-y)*sqrt(2.0);//只是这段程序移了下
else if(t>d)
printf("第一个长方形可以放进第二个长方形里");
else
printf("第一个长方形不可以放进第二个长方形里");
}第二种:这种是对的:
程序代码:#include"stdio.h"
#include"math.h""
int main()
{
double a,b,n,m,c,d;
double x,y,t;
printf("请依次输入第一个长方形的长和宽:\n");
scanf("%f %f",&a,&b);
printf("请依次输入第二个长方形的长和宽:\n");
scanf("%f %f",&n,&m);
c=sqrt(1.0*n);
d=sqrt(1.0*m/10);
x=sqrt(a*a+b*b);
y=1.0*c*a/x;
t=(a-y)*sqrt(2.0);//这段程序移了下
if(a>c&&b>d||a==c&&b>d||a>c&&b==d||a==c&&b==d)
printf("第一个长方形可以放进第二个长方形里");
else if(t>d)
printf("第一个长方形可以放进第二个长方形里");
else
printf("第一个长方形不可以放进第二个长方形里");
}







