Ir ao conteúdo

Posts recomendados

Postado

O maximo divisor comum de tres numeros inteiros positivos, MDC(x,y,z) e igual a MDC(MDC(x,y), z). Escreva um programa que capture tres numeros inteiros fornecidos via teclado e imprima o MDC deles, usando a funcao MDC apresentada no texto.

Esse é o codigo que estou  tentando :

 

int mdc(int x, int y, int z){
    if(y==0 || z==0)
        return x;
    else
        return mdc(y,x%z);
}
int main(){
    int x, y, z;
    printf("Digite os numeros: ");
    scanf("%d%d%d\n", &x, &y, &z);
    printf("O mdc de %d, %d e %d = %d", x, y, z, mdc((x,y),z));
    return 0;
}

 

  • Curtir 1
Postado

Você faz a função MDC que recebe 2 números como parâmetro.
Para calcular o MDC de 3 valores só precisa fazer entre 2 deles, pegar a resposta e fazer entre a resposta e o terceiro valor

Postado

@MassakiMsk

14 horas atrás, MassakiMsk disse:

Você faz a função MDC que recebe 2 números como parâmetro.
Para calcular o MDC de 3 valores só precisa fazer entre 2 deles, pegar a resposta e fazer entre a resposta e o terceiro valor

Opa amigo obrigado pela sua resposta, estou tentando mais nao consigo, consegui só com 2 numeros, to começando em programação, você pode me ajudar novamente colocando um exemplo?

Postado

 @MassakiMsk  

int mdc(int x, int y, int z){
    int aux;
    if(y==0)
        return x;
    else
        aux = (y,x%y);
        y = aux;
        return mdc(y,z%y);
}
int main(){
    int x, y, z, aux;
    printf("Digite os numeros: ");
    scanf("%d%d%d", &x, &y, &z);
    printf("O mdc de %d, %d e %d = %d", x, y, z, aux);
    return 0;
}

 

Postado

Então, o normal é fazer a função MDC com 2 valores.

int mdc(int x, int y) 

Depois se quiser calcular com 3 você só precisa fazer a chamada 2 vezes

mdc(mdc(x, y), z) 

 

Postado

@MassakiMsk

Não consegui, tentei de varias formas, olha uma forma q tentei

int mdc(int x, int y, int z){
    if(y==0)
        return x;
    else
        return mdc(mdc(x,y),x%z);
}
int main(){
    int x, y, z, aux;
    printf("Digite os numeros: ");
    scanf("%d%d%d", &x, &y, &z);
    printf("O mdc de %d, %d e %d = %d", x, y, z, mdc(mdc(x,y)z));
    return 0;
}

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!