2017-10-12 9 views
-3

私はプログラミングの初心者です。エラー:無効な値は無視されない - 単純なCプログラム

エラー:それは

* GCD = gcd_lcm((因数1%以下の因子2であるべきだと無視されない空値以下のコードを実行しているとき、私は=記号で小さな矢印が付き、次のエラーを取得しています)、因子2、gcd、1cm);

私は別のポストにあるようにvoid型に値を返す際の手順に従いましたが、私のコードではうまくいかないようです。誰かが私の間違いを指摘できますか?大いに感謝しますか?

#include <stdio.h> 

void gcd_lcm(int factor1, int factor2, int *gcd, int *lcm); 

int main(void) 
{ 

    int factor1; 
    int factor2; 
    int GCD; 
    int LCM; 

    printf("Enter Factor1: "); 
    scanf(" %d", &factor1); 

    printf("Enter Factor2: "); 
    scanf(" %d", &factor2); 

    gcd_lcm(factor1, factor2, &GCD, &LCM); 
    printf("The GCD of %d and %d is %d. The LCM is %d\n", factor1, factor2, 
    GCD, LCM); 

return 0; 
} 

void gcd_lcm(int factor1, int factor2, int *gcd, int *lcm) 
{ 

if (factor2 == 0) 
{ 
    *gcd = factor1; 
    *lcm = (factor1 * factor2)/*gcd; 
} 
else 
{ 
    *gcd = gcd_lcm((factor1 % factor2), factor2, gcd, lcm); 
    *lcm = (factor1 * factor2)/*gcd; 
} 
} 

私はこれにコードを変更しましたが、どのように動作しますか?

void gcd_lcm(int factor1, int factor2, int *gcd, int *lcm) 
{ 

if (factor2 == 0) 
{ 
    *gcd = factor1; 
    *lcm = (factor1 * factor2)/*gcd; 
} 
else 
{ 
    gcd_lcm(factor2, (factor1 % factor2), gcd, lcm); 
    *lcm = (factor1 * factor2)/*gcd; 
} 
} 
+0

'* gcd ='を削除するだけです。 –

+0

* *あなたのコードをインデントし、あなたのコード全体で一貫して[indenting style](https://en.wikipedia.org/wiki/Indent_style)を使用してください。そうすることで**読みやすく/管理しやすくなります**。 Stack Overflowに配置したコードでは、人々があなたの投稿を上書するようになり、人々があなたの質問に答える時間を増やす可能性が高くなります。どのスタイルを選択するかは実際問題ではありません(一部の言語では、他のスタイルよりもスタイルが適切です)。しかし、1つを選択して、1つのプロジェクト内のすべてのコードに一貫して使用します。 – Makyen

答えて

1

あなたはこれがgcd_lcmは、戻り値がないことを意味

void gcd_lcm(int factor1, int factor2, int *gcd, int *lcm); 

を書きました。

ここでは、(それがありません)その戻り値を使用しようとしている。

*gcd = gcd_lcm((factor1 % factor2), factor2, gcd, lcm); 

の推測では、gcdが再帰呼び出しに受け継がれているので、あなただけ使用することができます。

gcd_lcm((factor1 % factor2), factor2, gcd, lcm); 

私は間違っていない場合でも、factor2は決して変わらないので、再帰が停止することはありません...ここで

0

*gcd = gcd_lcm((factor1 % factor2), factor2, gcd, lcm); 

gcd_lcm()関数には戻り値はありませんが、キャッチしようとしています。

関連する問題