#include <stdioh>
#include <stdlibh>
#include <mathh>
int main(void)
{
int a,b,c,d;
double x1,x2;
printf("输入a,b,c(a不为0,数据间以空格隔开):");
scanf("%d %d %d",&a,&b,&c);
d=bb-4ac;//b^2在c里面不是平方 ^异或运算符
if(d>=0)//用整形比较才比较精确
{
x1=(-b+sqrt((double)d))/(20a);//说是有多个参数 可以float 可以double 你输入int的编译器不知道转换为哪一种
x2=(-b+sqrt((double)d))/(20a);
printf("方程的根为:%f,%f\n",x1,x2);
}
else
{
printf("方程无实根\n");
}
system("pause");
return 0;
}
<cassert>包含了<asserth> 那个可以在出错的时候指出
Example
/ ASSERTC: In this program, the analyze_string function uses
the assert function to test several conditions related to
string and length If any of the conditions fails, the program
prints a message indicating what caused the failure
/
#include <stdioh>
#include <asserth>
#include <stringh>
void analyze_string( char string ); / Prototype /
void main( void )
{
char test1[] = "abc", test2 = NULL, test3[] = "";
printf ( "Analyzing string '%s'\n", test1 );
analyze_string( test1 );
printf ( "Analyzing string '%s'\n", test2 );
analyze_string( test2 );
printf ( "Analyzing string '%s'\n", test3 );
analyze_string( test3 );
}
/ Tests a string to see if it is NULL, /
/ empty, or longer than 0 characters /
void analyze_string( char string )
{
assert( string != NULL ); / Cannot be NULL /
assert( string != '\0' ); / Cannot be empty /
assert( strlen( string ) > 2 ); / Length must exceed 2 /
}
Output
Analyzing string 'abc'
Analyzing string '(null)'
Assertion failed: string != NULL, file assertc, line 24
abnormal program termination
函数的参数名称是错误的。是否是重载函数,需要给编译器提供足够的信息判断。其主要的依据是函数的名字,参数的类型,函数的返回值类型。
函数的重载其实就是“一物多用”的思想(这里指的“物”是“函数名”),其实不仅是函数可以重载,运算符也是可以重载的。例如:运算符“<<”和“>>”既可以作为移位运算符,又可以作为输出流中的插入运算符和输入流中的提取运算符。
扩展资料
C++运算符重载的相关规定如下:
1、不能改变运算符的优先级。
2、不能改变运算符的结合型。
3、默认参数不能和重载的运算符一起使用。
4、不能改变运算符的 *** 作数的个数。
5、不能创建新的运算符,只有已有运算符可以被重载。
6、运算符作用于C++内部提供的数据类型时,原来含义保持不变。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)