1、VS 2010 sqrt()函数
int i=10;
int b=sqrt(i);
会报错,因为VS 2010中重新定义了sqrt()函数,该函数有两个重载:float sqrt(float)和double sqrt(double)。若sqrt()中传入的参数为int,那么在执行开方时编译器会产生迷惑,是将int转换为float后调用float sqrt()呢,还是将它转换为double后再调用double sqrt()呢?
解决方法:执行sqrt()时强制指定为一种类型即可:
sqrt((float)k)或是qrt((double)k);
2、if else中,else只和前面没有配对的if自动配对
先看两段程序。
A
#include<iostream>
using namespace std;
void main()
{
int a=2,b=3,c=1;
if (a>b)
{if(a>c) cout<<a;} //此时else和if(a>b)配对,故输出为3,注意第二个if是被{}括起来的。
else cout<<b;
}
B
#include<iostream>
using namespace std;
void main()
{
int a=2,b=3,c=1;
if (a>b)
if(a>c) cout<<a; //此时else和if(a>c)配对,if(a>b)无配对的else,无输出。
else cout<<b;
}