sd****@gmail.com 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

}