-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

問題はdo { ... }、コンパイラが条件を期待した後です。

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

さらに、あなたのコードはまったく正しくないようです。たとえば、あなたのif (x=y)状態は次のようになります: if (x==y)、その他...

于 2013-11-09T17:12:17.953 に答える
0

あなたのfor発言には誤りがあります。割り当てではなく、比較に
使用します。 また、比較としてorを使用します。条件はループでスキップされる場合があります 。===
<<===

今後これらの問題を防ぐための提案: forifelseおよびで '{' および '}' を使用しwhileます。

例えば:

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 に答える