-6

我收到此错误

error C2059: syntax error : 'if'

这是我的代码

// N.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>

int main ()
{
    int x,y,n,i,m;
    std::cout<<"please enter a number";
    i=0;
    std::cin>>n;
    for (x=1;x=n;x++)
        for (y=1;y=n;y++)
        if (x=y) m=x;
        else;
    while (x!=y) ;
    do
    {
        if (x>y) x=x-y;
        else y=y-x;
        m=x;
    }
    if (m=1) i=i+1;
    std::cout<<i;
    return 0;
}

问题是什么 ?

我正在使用 Microsoft Visual Studio 2008

4

2 回答 2

1

The problem is that after the do { ... } the compiler is expecting a condition:

do
{
    if (x>y) x=x-y;
    else y=y-x;
    m=x;
} while (condition);

In addition, your code seems to be not correct at all. For instance, your if (x=y) condition may be like this: if (x==y), and other...

于 2013-11-09T17:12:17.953 回答
0

你的for陈述中有错误。
用于==比较,而不是=分配。
此外,使用<or<=作为比较。条件可能会在循环中==被跳过。

有助于防止将来出现这些问题的建议:将 '{' 和 '}'与forif和. elsewhile

例如:

for (x=1;x=n;x++)
{  // Insert this line.
    for (y=1;y=n;y++)
    {  // Insert this line.
        if (x=y)
        {
           m=x;
        }
        else
        {
           ;
        }
    } // End of for y
}  // End of for x

大括号和缩进有助于在代码审查期间发现错误。大多数编码风格都需要大括号,即使对于单个语句也是如此。

此外,使用空格使代码更具可读性。它们不会影响构建时间或代码生成,但在阅读代码时确实很有帮助:
for (x = 1; x <= n; x++)

于 2013-11-09T19:35:13.843 回答