Soy nuevo en esto de programar asi que es posible que sea una estupidez, pero no la veo. Asi que si sabeis cual es el problema por favor decidmelo.
El ejercicio es el siguiente:
tengo que escribir un programa que llame a una funcion MCD que realice el maximo comun divisor, el codigo que he escrito es el siguiente:
#include <stdio.h>
#include <stdlib.h>
int MCD(Numero1,Numero2)
{
int PosDivi=1,MaxCD=0,PosDivj;
while(PosDivi<=Numero1)
{
if((Numero1%PosDivi)==0)
{
PosDivj=1;
while(PosDivj<=Numero2)
{
if(((Numero2%PosDivj)==0)&&(PosDivi==PosDivj))
{
MaxCD=PosDivi;
}
PosDivj++;
printf("a");
}
printf("b");
}
PosDivi++;
}
return MaxCD;
}
int main()
{
int Divisor1, Divisor2;
printf("introduce los divisores\n");
scanf("%d,%d",&Divisor1,&Divisor2);
printf("MCD=%d",MCD(Divisor1,Divisor2));
return 0;
}
Intento que compare cada uno de los divisores de un numero con todos los divisores del otro, los 'printf' con a y b son para ver si el programa pasaba por los bucles y con ellos he descubierto que no lee el bucle while en el que se calculan los divisores de 'Numero2' asi que supongo que el problema estara ahi.
Un saludo y gracias de antemano
PD: En el build log me aparece el siguente mensaje:
El ejercicio es el siguiente:
tengo que escribir un programa que llame a una funcion MCD que realice el maximo comun divisor, el codigo que he escrito es el siguiente:
#include <stdio.h>
#include <stdlib.h>
int MCD(Numero1,Numero2)
{
int PosDivi=1,MaxCD=0,PosDivj;
while(PosDivi<=Numero1)
{
if((Numero1%PosDivi)==0)
{
PosDivj=1;
while(PosDivj<=Numero2)
{
if(((Numero2%PosDivj)==0)&&(PosDivi==PosDivj))
{
MaxCD=PosDivi;
}
PosDivj++;
printf("a");
}
printf("b");
}
PosDivi++;
}
return MaxCD;
}
int main()
{
int Divisor1, Divisor2;
printf("introduce los divisores\n");
scanf("%d,%d",&Divisor1,&Divisor2);
printf("MCD=%d",MCD(Divisor1,Divisor2));
return 0;
}
Intento que compare cada uno de los divisores de un numero con todos los divisores del otro, los 'printf' con a y b son para ver si el programa pasaba por los bucles y con ellos he descubierto que no lee el bucle while en el que se calculan los divisores de 'Numero2' asi que supongo que el problema estara ahi.
Un saludo y gracias de antemano
PD: En el build log me aparece el siguente mensaje:
-------------- Run: Debug in d (compiler: GNU GCC Compiler)---------------
Checking for existence: C:\Users\PEDRO\Desktop\d\bin\Debug\d.exe
Executing: "C:\Program Files\CodeBlocks/cb_console_runner.exe" "C:\Users\PEDRO\Desktop\d\bin\Debug\d.exe" (in C:\Users\PEDRO\Desktop\d\.)
Process terminated with status 0 (0 minute(s), 7 second(s))