C++ 错误:到?的操作数:具有不同的类型';int';和';std::basic_ostream<;char>'; #包括 #包括 使用名称空间std; int main(){ INTA、b、c、D; 双x1,x2; cout>a; cout>b; cout>c; D=功率(b,2)-4*a*c; x1=(-b+D)/(2*a); x2=(-b-D)/(2*a); cout
按照注释中的建议,将两个操作数强制转换为void:C++ 错误:到?的操作数:具有不同的类型';int';和';std::basic_ostream<;char>'; #包括 #包括 使用名称空间std; int main(){ INTA、b、c、D; 双x1,x2; cout>a; cout>b; cout>c; D=功率(b,2)-4*a*c; x1=(-b+D)/(2*a); x2=(-b-D)/(2*a); cout,c++,C++,按照注释中的建议,将两个操作数强制转换为void: #include <iostream> #include <cmath> using namespace std; int main(){ int a , b , c , D ; double x1 , x2 ; cout << " a = " ; cin >> a; cout << " b = " ; cin >>
#include <iostream>
#include <cmath>
using namespace std;
int main(){
int a , b , c , D ;
double x1 , x2 ;
cout << " a = " ;
cin >> a;
cout << " b = " ;
cin >> b;
cout << " c = " ;
cin >>c;
D = pow(b,2) - 4 * a * c;
x1 = (-b + D ) / (2*a);
x2 = (- b - D) / (2*a);
cout << "D = " << D << endl;
D >= 0 ? ( x1,x2) : (cout << "nope . \n" , x1 = x2 = 0);
cout << x1 << endl;
cout << x2 << endl;
(D % 2) == 1 ? (D++) : (cout << "Number is even . \n" ); //check if number is uneven and if it is then add 1
cout << D << endl;
return 0;
}
对于
?:
的其他用途,您也需要做同样的事情。在问题的评论中已经说过,但要澄清这一点
三元(?)运算符的返回类型等于两个代码分支的类型。如果分支返回的类型不同,则编译器将显示此错误
三元运算符的注释用法是根据条件为变量赋值:
bool isConnected=true;
静态整数idCount=0;
int connectionID=未连接?++idCount:-1;
将两个操作数强制转换为无效?停止滥用条件运算符。如果使用,则很好。(D%2)==1?(D++):(任务是否希望我使用条件运算符operator@Skyline然后是“任务”是垃圾。所以基本上两个表达式必须是相同的类型,如果不是的话,编译器会立即显示错误?基本上是的。这就是为什么给出的答案使用强制转换无效。因为这样两个路径都将返回无效。@Skyline如果你找到了它,请按左边的绿色勾号将你的问题标记为已解决。
(D % 2) == 1 ? void(D++) : void(cout << "Number is even . \n" );
if (D % 2 == 1)
D++;
else
cout << "Number is even . \n";