Ayuda codigo fuente en C++

Hola me gustaria a ver si me pueden ayudar con este codigo fuente:


#include <cstdlib>
#include <iostream>
using namespace std;

int main()
{
int n;
int m;
char c;
float resul;

int MCD (int n , int m);
int MCM ( int n, int m, int MCD);

do
{
cout << "Introduce dos numeros enteros positivos" << endl;
cin >> n >> m;
cout << "Introduce una operacion: +,-,/,*,d,m,& para salir" << endl;
cin >> c;
} while ((c != '+') || (c != '-') || (c != '*') || (c != '/') || (c != 'm') || (c != 'd') || (n < 0) || (m <= 0));

resul == 0;
switch (c)
{
case '+' : resul = (n + m);
break;
case '-' : resul = (n - m);
break;
case '*' : resul = (n * m);
break;
case '/' : resul = (n / m);
break;
case 'd' : resul = MCD(n, m);
break;
case 'm' : resul = MCM( n, m, MCD (n,m) );
break;
}
cout << "El resultado es:" << endl;
cout << resul << endl;
system ("pause");
return 0;
}


int MCD ( int n, int m )
{
int temp;

do
{
if (n > m)
{
n = n-m;
}
if (m > n)
{
temp = m;
m = n;
n = temp;
}
} while (n != m);

return n;
}


float MCM ( int n, int m, int MCD )
{
float minimocomun;

minimocomun = ((n * m)/ MCD);

return minimocomun;
}

Es k en la linea donde pone case 'm' me da error al compilar, sera por que no se como usar la funcion MCD como parametro de la funcion MCM. el caso es lo he corregido mucho pero no consigo hacerlo bien.Al guien k me ayude o me explique k hacer

gracias por adelantado :)
Si la función MCD requiere 2 parametros ¿por qué no se los pasas en la linea que te falla? digo yo que la linea debería ser algo así:

case 'm' : resul = MCM( n, m, MCD(n, m) );

he puesto n y m por poner variables que ya tienes pero puedes poner las que quieras.
Mira ver si con eso se soluciona tu error y sinó postea exactamente el error que te sale.
gracias petrix con eso conseguí al final quitar todos los errores lo k pasa es k no funcionan tres cosas (mirar el mensaje 1º k lo e editado sin errores en el compilador):
1º en el bucle hacer-mientras cuando pongo dos numeros positivos y uno de los caracteres correctos tendria k salir pero no se sale del bucle.
2º la funcion del MCM no me funciona, no da error el compilador pero luego el resultado no es coherente
3º cuando hace le caso de la division cualquier division k haga me sale 1.

x favor podriais decir k cambiar
gracias ;)
2 respuestas