Forum Pplware
Dúvidas de C (Eclipse) #2 - Versão de Impressão

+- Forum Pplware (http://forum.pplware.com)
+-- Fórum: Mais Tech (/forumdisplay.php?fid=11)
+--- Fórum: Programação e Web (/forumdisplay.php?fid=16)
+--- Tópico: Dúvidas de C (Eclipse) #2 (/showthread.php?tid=3655)



Dúvidas de C (Eclipse) #2 - Pirotas - 30-10-2009 20:10

Voltei de novo! Mas agora já tenho umas linhas escritas Big Grin

O problema que tenho esta semana é o do MDC e do mmc:

Escreva um programa que calcule o Máximo Divisor Comum (MDC) e o mínimo múltiplo comum (mmc) de dois número inteiros.
O programa deve ter duas funções, em que em ambas, recebem dois inteiros positivos e retornam o MDC e o mmc respectivamente.
O calculo do MDC deve ser feito de forma iterativa e o calculo do mmc deve recorrer à função MDC.


Eis o que já fiz:

main.c

Código:
#include "prat4.h"
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
    int a, b, t;
    int res_mmc, res_MDC;

    printf("Introduza o primeiro numero inteiro: ");
    scanf("%d", &a);
    printf("Introduza o segundo numero inteiro: ");
    scanf("%d", &b);

    if ( a < b )/* Garantir que A seja o maior valor */
        {
           t = a;
           a = b;
           b = t;
        }

    while ( b != 0 ) /* Calcular o MDC */
        {
          res_MDC = a % b;
          a = b;
          b = res_MDC;
        }

    mmcF(a, b, res_MDC, res_mmc);

    if (res_MDC > 0 && res_mmc > 0)
        printf("Aos numeros inteiros %d e %d correspondem:\n"
            "MDC = %d \n"
            "mmc = %d", a, b, res_MDC, res_mmc);
        else
            printf("Parece que nao sabes o que sao numeros inteiros!");

    return 0;
}

=======================================================

prat4.c

Código:
#include "prat4.h"
#include <stdio.h>
#include <stdlib.h>

int mmcF(int a, int b, int res_MDC, int res_mmc)
{
    res_mmc = (a*b)/res_MDC;

    return res_mmc;

}

=======================================================

prat4.h

Código:
#ifndef PRAT4_H_
#define PRAT4_H_

#include <stdio.h>
#include <stdlib.h>

int mmcF(int a, int b, int res_MDC, int res_mmc);

#endif /* PRAT4_H_ */

=======================================================

Já corri o programa e passei pelo debug. Quando salta para a função deixa de correr ou de apresentar dados, não me devolve nada.

O que será que tenho mal, ou por outro lado, o que é que não está mal Shy

Já agora, se alguém tiver uma explicação muito simplesinha sobre o que é uma iteração... é que é suposto serem duas funções e eu não consigo achar forma diferente de calcular o MDC.

Desde já o meu muito obrigado.