初始化变量时,错误消息类型int意外 我是C++新手。 我在网上搜索了一些类似的问题, 不幸的是,我还没有找到我的问题的答案。 我使用Visual Studio代码作为编译器, 早些时候我想可能有些东西过时了, 但我在一个在线编码测试编辑器上运行了这段代码, 它也不起作用。 所以我想问题可能在于代码。 我将int改为std::int,但它与此无关

初始化变量时,错误消息类型int意外 我是C++新手。 我在网上搜索了一些类似的问题, 不幸的是,我还没有找到我的问题的答案。 我使用Visual Studio代码作为编译器, 早些时候我想可能有些东西过时了, 但我在一个在线编码测试编辑器上运行了这段代码, 它也不起作用。 所以我想问题可能在于代码。 我将int改为std::int,但它与此无关,c++,C++,我的代码如下:, 第15行出现错误消息“type int is unexpected”, 指的是i2,i3和i5。 我看到其他人将“类解决方案”替换为“结构解决方案”, 这起作用了。 然而,我希望知道为什么会产生这种错误,以及如何使其工作 多谢各位 #include <stdio.h> #include <vector> #include <string> #define NOMINMAX #define min(a,b) (((a)

我的代码如下:, 第15行出现错误消息“type int is unexpected”, 指的是i2,i3和i5。 我看到其他人将“类解决方案”替换为“结构解决方案”, 这起作用了。 然而,我希望知道为什么会产生这种错误,以及如何使其工作

多谢各位

#include <stdio.h>
#include <vector>
#include <string>

#define NOMINMAX
#define min(a,b)            (((a) < (b)) ? (a) : (b))
#define max(a,b)            (((a) > (b)) ? (a) : (b))

using namespace std;

class solution{
public: 
    int nthUglyNumber(int n){
        vector<int> res(1,1);
        int i2 = 0 , int i3 = 0 , int i5 = 0; //initialize to 0
        while (res.size() < n){
            int m2= res[i2]*2 , m3 = res[i3]*3, m5 = res[i5]*5;
            int mn = min(m2, min(m3, m5));
            if (mn == m2) ++i2; // check which one is the smallest, sort
            if (mn == m3) ++i3;
            if (mn == m5) ++i5;
            res.push_back(mn);
        }
        return res.back();
    }
};
#包括
#包括
#包括
#定义NOMINMAX
#定义最小值(a,b)((a)<(b))?(a):(b))
#定义最大值(a,b)((a)>(b))?(a):(b))
使用名称空间std;
类解决方案{
公众:
int nthUglyNumber(int n){
向量res(1,1);
int i2=0,int i3=0,int i5=0;//初始化为0
while(res.size()
这个

还是这个

int i2 = 0 ; int i3 = 0 ; int i5 = 0; //initialize to 0
您的版本介于两者之间,但不合法。

还是这个

int i2 = 0 ; int i3 = 0 ; int i5 = 0; //initialize to 0

您的版本介于两者之间,但不合法。

使用
inti2=0、i3=0、i5=0
。另一方面,您的
#define NOMINMAX
位置错误,需要在
#include
语句上方。在“代码> <代码>标题中定义了C++和函数,不应该为它们定义宏。谢谢,我把它改为包含和排除那些定义的东西。我用int i2=0,i3=0,i5=0;一开始这不是问题所在,因为使用
inti2=0,i3=0,i5=0
。另一方面,您的
#define NOMINMAX
位置错误,需要在
#include
语句上方。在“代码> <代码>标题中定义了C++和函数,不应该为它们定义宏。谢谢,我把它改为包含和排除那些定义的东西。我用int i2=0,i3=0,i5=0;一开始这不是问题所在,虽然我改为第二个问题,但现在我的Visual Studio代码符合要求,但在线编码编辑器显示“使用未声明的标识符”解决方案,你是说“解决方案”,而我使用“解决方案”吗“…不确定出了什么问题我改成了第二个问题,但现在我的Visual Studio代码符合要求,但在线编码编辑器显示“使用未声明的标识符”解决方案,你是说“解决方案”,而我使用“解决方案”…不确定出了什么问题。”