(E-Mail Removed) wrote:

> Hi,

> Can someone help me with an idea on how to start writing a C++ code
step 1: learn that C++ is a different language from C. Posts about C++

are not topical in <news:comp.lang.c>. The C++ newsgroup is

<news:comp.lang.c++>, but your post is about algorithms independent of

any language, so is not topical there either.

> for generating

> greatest common divisor and the linear combination of two intergers

> represented as gcd(m, n)= mx + ny and adding them it will give us the

> greatest common divisor and I need to use the extended Euclidean

> algorithm.

> I already have the code for the greatest common divisor but I dont

> know how to do the linear combination.
The above makes no sense.

1) If you "have the code for the greatest common divisor" then you are done.

2) You _don't_ have the code for the greatest common divisor.

Here is a version of you code which

a) is legal C so is topical here

b) has a working (if not best) gcd() function.

Now, what was your question?

#include <stdio.h>

int gcd(int, int); /* notice return type */

int main(void)

{

int m = 0, n = 0;

puts("Welcome to the Greatest Common Divisor Program\n\n"

"Enter the first number: ");

scanf("%d", &m);

puts("\nEnter the second number: ");

scanf("%d", &n);

printf("gcd(%d,%d) =%d\n", m, n, gcd(m, n));

return 0;

}

int gcd(int m, int n)

{

if (!m || !n) return 0;

if (m < 0) return gcd(-m,n);

if (n < 0) return gcd(m,-n);

if (m < n) return gcd(n,m);

if (m%n) return gcd(n, m%n);

return n;

}

> This is what I have:

>

> #include <iostream>

> #include <iomanip>

> using namespace std;

>

> void gcd(int, int);

> void extended_gcd(int, int, int, int);

>

> int main()

> {

> int m=0, n=0;

>

> cout<<"Welcome to the Greatest Common Divisor Program\n\n";

> cout<<"Enter the first number: ";

> cin>>m;

> cout<<endl;

> cout<<"Enter the second number: ";

> cin>>n;

> cout<<endl;

> cout<<"gcd("<<m<<", "<<n<<") = ";

> gcd(m, n);

> return 0;

> }

>

> void gcd(int m, int n)

> {

> int r, q, d;

> while (n!=0)

> {

> r = m % n;

> q = m / n;

> r = m - n * q; // I was thinking on put it on the stack

> but I dont know how

> m = n;

> n = r;

> }

>

> d = m;

> cout<<d<<endl;

> //then pop the stack as d=r-q*n

> }

>