Я не знаю, почему я не могу связать эту программу. Прежде всего, это мой заголовочный файл, gcd.h:
#ifndef GCD_H
#define GCD_H
/**
* Calculate the greatest common divisor of two integers.
* Note: gcd(0,0) will return 0 and print an error message.
* @param a the first integer
* @param b the second integer
* @return the greatest common divisor of a and b
*/
long gcd(long a, long b);
#endif
А это мой файл gcd.cpp:
#include "gcd.h"
#include <iostream>
using namespace std;
long gcd(long a, long b) {
// if a and b are both zero, print an error and return 0
if ( (a==0) && (b==0) ) {
cerr << "WARNING: gcd called with both arguments equal to zero." << endl;
return 0;
}
// Make sure a and b are both nonnegative
if (a<0) {
a = -a;
}
if (b<0) {
b = -b;
}
// if a is zero, the answer is b
if (a==0) {
return b;
}
// otherwise, we check all the possibilities from 1 to a
long d; // d will hold the answer
for (long t=1; t<=a; t++) {
if ( (a%t==0) && (b&t==0) ) {
d = t;
}
}
return d;
}
Основная проблема, когда я компилирую, он возвращает ошибку
C: / MinGW / бен /../ Библиотека / GCC / mingw32 / 4.5.2 /../../../ libmingw32.a (main.o): main.c :( текст + 0xd2. ):
неопределенная ссылка на `WinMain @ 16 'collect2: ld вернул 1 выход
статус
Я не понимаю, что это значит.
Пожалуйста, помогите?
Хорошо, может кто-нибудь просто изменить мой код, чтобы он работал правильно? Это лучшая ставка на данный момент, потому что тогда я действительно пойму, что я сделал не так.