初学者请教一个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>吗?

参考技术A

#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 中创建简单的类实例时出错。初学者

c++的Visual Studio?

Visual Studio 2017 导致问题

浅谈如何使用visual studio监视窗口

如何在配置了 ITK 的 Visual Studio 中使用 C++ 读取和写入图像

设置 Visual Studio for Windows 初学者教程