初学者请教一个Visual studio C++的小问题!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初学者请教一个Visual studio C++的小问题!相关的知识,希望对你有一定的参考价值。
#include <iostream>
#include <cmath>
using namespace std;
int main()
int n,count=1;
cin>>n;
if(n<2) return -1;
cout<<2<<",";
for(int i=3;i<n;i+=2)
int j=2;
while(j<=sqrt(i) && i%j!=0)
j++;
if( j>sqrt(i))
cout<<i<<",";
count++;
if (count%6==0) cout<<endl;
cout<<endl;
return 0;
以上的简单小程序,编译时不通过,出现错误提示如下: error C3861: “=sqrt”: 找不到标识符
这是怎么回事呀!不是已经添加了<cmath>吗?
#include <iostream>
#include <cmath>
using namespace std;
int main()
int n,count=1;
cin>>n;
if(n<2) return -1;
cout<<2<<",";
for(double i=3;i<n;i+=2)
int j=2;
while(j<=sqrt(i) && (int)i%j!=0)
j++;
if( j>sqrt(i))
cout<<i<<",";
count++;
if (count%6==0) cout<<endl;
cout<<endl;
VS2008编译通过
改了
1.for(double i=3;i<n;i+=2)
msdn2008资料:
double sqrt(
double x
);
float sqrt(
float x
); // C++ only
long double sqrt(
long double x
); // C++ only
float sqrtf(
float x
);
sqrt的参数不可以int型,此处改double为下面做准备
2.while(j<=sqrt(i) && (int)i%j!=0)
%的左操作数又必须是int型,此处i强制转换为int型 参考技术B #include <iostream>
#include <cmath>
using namespace std;
int main()
int n, count = 1;
cin >> n;
if (n < 2)
return -1;
cout << 2 << ",";
for (int i = 3; i < n; i += 2)
int j = 2;
while (j <= sqrt(i) && i % j != 0)
j++;
if (j > sqrt(i))
cout << i << ",";
count++;
if (count % 6 == 0)
cout << endl;
cout << endl;
return 0;
那个include的是应对老式的编译器所使用的方法,并非胡扯
不过大写include就有点扯了。
兄弟们说的都对。 参考技术C 楼上胡扯!
大哥,让我怎么说你好?
你把sqrt前面的等号打成中文输入法里的等号啦!!!!
你没看出来下面你写的这两行里面的等号长得不一样吗?
int j=2;
while(j<=sqrt(i) && i%j!=0)
如果是头文件未包含的问题,错误信息会是error C3861: “sqrt”
而不是error C3861: “=sqrt” 参考技术D 错误原因在这句话 while(j<=sqrt(i) && i%j!=0)
其中<=应该为英文输入法下的<=
你仔细检查一下你的程序,呵呵 第5个回答 2008-08-13 那个等号真长啊
以上是关于初学者请教一个Visual studio C++的小问题!的主要内容,如果未能解决你的问题,请参考以下文章
在 C++ 中的 Visual Studio 中创建简单的类实例时出错。初学者