c++ - 尽管包装了函数和命名空间 std,但 cout 没有命名类型
问题描述
我收到错误“cout 没有命名类型”(第 36 行,即主函数)以及 main() 中的其他几个错误。
所有代码都很好地包装在函数中,我已经使用过
using namespace std;
但我仍然收到此错误以及其他〜标识符〜未在主函数的此范围错误中声明。
代码:
#include<iostream>
#include<cmath>
using namespace std;
double discriminant (double a, double b, double c){
return (pow(b,2) - (4 * a * c));
}
double* compute_roots(double a, double b, double c){
double* x;
double x1,x2;
double d = discriminant(a,b,c);
if (d>0){
cout<<"Two real roots"<<endl;
}
else if (d=0){
cout<<"One unique solution"<<endl;
}
else
{
cout<<"Does not support complex roots";
//throw "Negative roots!";
return x;
}
x1 = (-b + sqrt(d))/(2*a);
x2 = (-b - sqrt(d))/(2*a);
x[0] = x1;
x[1] = x2;
return x;
}
int main{
double a=2.0,b=5,c=3.1;
double* res=compute_roots(a,b,c);
cout<<res[0];
cout<<res[1];
return 0;
}
解决方案
int main{
那应该是
int main() {
否则编译器会认为你正在尝试定义一个名为 的整数变量main
,而不是一个函数,并且会被后面的代码弄糊涂。
另外,在使用它的值之前compute_roots
永远不要初始化它的局部变量x
,这样就行不通了:
double* x; // ... return x;
另一个问题:
else if (d=0){
可能应该是d == 0
(=
用于分配,而不是比较)。
推荐阅读
- c - 在 MPI 中使用 Cblacs 初始化网格时出现问题
- python - Django REST Framework,只有 Admin 可以 DELETE 或 PUT
- java - 如何在运行时或在 Websphere 的类路径中使外部 xml 配置文件可用于 war/ear 文件?
- c++ - 签署 gcrypt 数据返回 16777281
- python - PySpark 使用 tuple 和 int 从 RDD 中创建三列数据框
- javascript - 需要根据 reactjs 中的单选按钮输入填充值
- r - 如何根据存储在 R 中的向量中的索引来选择列?
- javascript - 如何以 15 分钟的间隔显示分钟
- python - 使用 pandas groupy + apply 和 condensing groups 计算平均值的更快方法
- firebase - RestoreAssemblyResources 项目“*\playservicesbasement-16.2.0.aar”上缺少 AssemblyName 元数据