Salve,
Programa em C que calcula MDC(Máximo Dividor Comun) e MMC(Minimo Multiplo Comun) usando funções separadas.
/****** CODIGO *******/
#include <stdio.h>
#include <conio.h>
/* FUNCAO QUE CALCULA O MDC ( MAXIMO DIVISOR COMUN )*/
int fc_MDC( int num1, int num2 );
/* FUNCAO QUE CALCULA O MMC ( MINIMO MULTIPLO COMIN )*/
int fc_MMC( int num1, int num2, int mdc );
main()
{
int num1, num2;
int MDC, MMC;
char opcao;
opcao = 1;
while( 1 )
{
printf(”1 - Calcular MDC e MMC\n”);
printf(”2 - Sair\n”);
opcao = getch();
system(”cls”);
switch( opcao )
{
case ‘1′:
printf(”Informe o valor de a:”);
scanf(”%d”, &num1);
printf(”\nInforme o valor de b:”);
scanf(”%d”, &num2);
MDC = fc_MDC( num1, num2 );
MMC = fc_MMC( num1, num2, MDC);
printf(”\n\n”);
printf(”O MDC de %d e %d e igual a: %d\n”, num1, num2, MDC);
printf(”\n\n”);
printf(”O MMC de %d e %d e igual a: %d\n”, num1, num2, MMC);
getch();
system(”cls”);
break;
case ‘2′:
exit(0);
break;
default:
system(”cls”);
printf(”Opcao nao existe!\n”);
}
}
}
/* FUNCAO QUE CALCULA O MDC ( MAXIMO DIVISOR COMUN )*/
int fc_MDC( int num1, int num2 )
{
int numAux;
int num1Aux, num2Aux;
int MDC;
num1Aux = num1;
num2Aux = num2;
/* EFETUA O LACO ATE QUE O RESTO DOS NUMEROS INFORMADOS FOR DIFERENTE DE 0 ( ZERO ) */
while( ( num1Aux % num2Aux ) != 0 )
{
/* numAux RECEBE O RESTO DOS NUMEROS O QUAL FORAM INFORMADOS */
numAux = ( num1Aux % num2Aux );
/* TROCA-SE O VALOR DE num1Aux PELO O DE num2Aux */
num1Aux = num2Aux;
/* num2Aux RECEBE O RESTO, CALCULADO ANTERIORMENTE, DOS NUMEROS INFORMADOS */
num2Aux = numAux;
}
/* MDC RECEBE O ULTIMO DIVISOR COMUN ENTRE OS NUMEROS INFORMADOS */
MDC = num2Aux;
return MDC;
}
/* FUNCAO QUE CALCULA O MMC ( MINIMO MULTIPLO COMIN )*/
int fc_MMC( int num1, int num2, int MDC )
{
int MMC;
/*
DIVIDE num1Aux PELO MDC E MULTIPLICA ESSE RESULTADO POR num2Aux
CALCULO DO MMC, DEPENDE DO RESULTADO DO MDC
*/
MMC = ( num1 / MDC ) * num2;
return MMC;
}
/****** CODIGO *******/
Valeu!










Últimos Comentários