【问题标题】:Having some errors, learning c (Euclidean Algorithm)有一些错误,学习c(欧几里得算法)
【发布时间】:2015-08-31 10:08:52
【问题描述】:

所以我之前在 Python 中做过一些编程,并尝试使用我从那里使用的一些旧解决方案/方法。但我有一些语法/编译器错误,我觉得我错过了一些东西。可能真的很愚蠢,但这里是代码。

//Euclidian Algorithm In C
//a=bq+r gcd(a,b)=gcd(b,r)
//Recursive Solution
//Devin Martin

#define _CRT_SECURE_NO_WARNINGS    // to avoid scanf warning or error
#include <stdio.h>
int main()
{
    int a, b = 0;
    int gcd(a, b); 
    {
        if (b == 0);
            return a;
        return gcd(b, a % b);  //a%b = r
    }
}

错误 严重性代码描述项目文件行

错误 LNK2019 未解析的外部符号 _gcd 在函数 _main EuclidianAlgorithm D:\Documents\Visual Studio 2015\Projects\EuclidianAlgorithm\EuclidianAlg.obj 1 中引用

警告 C4700 未初始化的局部变量“a”使用了 EuclidianAlgorithm d:\documents\visual studio 2015\projects\euclidianalgorithm\euclidianalg.c 14

Error LNK1120 1 unresolved externals EuclidianAlgorithm D:\Documents\Visual Studio 2015\Projects\EuclidianAlgorithm\Debug\EuclidianAlgorithm.exe 1

【问题讨论】:

  • 看来这不是您拥有的唯一文件。您的项目中还有其他文件吗?

标签: c


【解决方案1】:

您不能在 C 中的另一个函数内部定义一个函数。此外,函数定义不正确,因为您需要在参数列表中声明参数的类型。

#include <stdio.h>

int gcd(int a, int b)
{
    if (b == 0)
        return a;
    return gcd(b, a % b);  //a%b = r
}

int main()
{
    printf("gcd(15,6)=%d\n",gcd(15,6));
}

【讨论】:

    猜你喜欢
    • 2014-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-30
    • 1970-01-01
    • 2018-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多