Ir para conteúdo
Fórum Script Brasil
  • 0

Calcular MMC em C


rflbboy

Pergunta

Sou iniciante em programação C e estou tentando criar um programa que calcula a distância entre dois pontos, mas estou com um problema. Após fazer a conta :Untitled-1(12).png

Quero que o programa veja se a raiz vai ser exata, mas, caso não seja, quero que ele calcule o M.M.C. e dê o resultado.

Meu código ficou o seguinte:

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

main()
{      
      int X1, Y1;
      int X2, Y2;
      int C1, C2;
      int RC1, RC2;
      int RF,RF2;
      system("mode con cols=50 lines=30");
      printf(" ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿\n");
      printf(" ³       CALCULANDO DIT¶NCIA ENTRE PONTOS       ³\n");
      printf(" ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´\n");
      printf(" ³                                              ³\n");
      printf(" ³                                             ³\n");
      printf(" ³      ³      A(\?,\?)                           ³\n");
      printf(" ³      ³                                       ³\n");
      printf(" ³      Ã 3                                     ³\n");
      printf(" ³      ³                                       ³\n");
      printf(" ³      Ã 2                                     ³\n");
      printf(" ³      ³                                       ³\n");
      printf(" ³      Ã 1                    B(\?,\?)           ³\n");
      printf(" ³      ³                                       ³\n");
      printf(" ³      ÀÄÄÂÄÄÂÄÄÂÄÄÂÄÄÂÄÄÂÄÄÂÄÄ               ³\n");
      printf(" ³         1  2  3  4  5  6  7                  ³\n");
      printf(" ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´\n");
      printf(" ³      Digite a distƒncia entre os pontos:     ³\n");
      printf(" ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n");
      printf(" ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿\n");
      printf(" ³   Digite os pontos de A. Exemplo \"A(?,?)\".   ³\n");
      printf(" ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n");
      scanf(" %d%d", &X1, &X2);
      printf(" ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿\n");
      printf(" ³   Digite os pontos de B. Exemplo \"B(?,?)\".   ³\n");
      printf(" ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n");
      scanf("%d%d", &Y1, &Y2);
      
      /*Calculando*/
      C1 = ((X1)-(Y1));
      C2 = ((X2)-(Y2));
      RC1=pow(C1,2);
      RC2=pow(C2,2);
      RF = RC1 + RC2;
      RF2=sqrt(RF);
      
      /*Verificando Raiz*/
      if ((RF2*RF2) == RF) {
                    printf("O resultado de A(%d,%d) e B(%d,%d) e: %d", X1, X2, Y1, Y2, RF2);
                    getch();
      } else {
             /*Aqui deveria calcular o MMC, caso a raiz não seja exata.*/
             printf("O resultado de A(%d,%d) e B(%d,%d) e: %d", X1, X2, Y1, Y2, RF);
             getch();
      
             }                     
}

Por favor me ajudem!

Agradeço desde já!

Editado por rflbboy
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Opa, segue abaixo um algoritimo que passa 2 valores por parâmetro para uma função e retorna o MMC desses valores ao main. Espero que te ajude.

#include<stdlib.h>
#include<stdio.h>
#include<string.h>
void mmc(int v1,int v2,int *resp){
   int cont=2,dividiu,resposta=1;
   while (v1!=1 || v2!=1){
         dividiu=0;
         if (v1%cont==0){
            dividiu=1;
            v1=v1/cont;
         }
         if (v2%cont==0){
            dividiu=1;
            v2=v2/cont;
         }
         if (dividiu==0){
           cont++;
         }else{
           resposta=resposta*cont;
         }
   } 
   *resp=resposta; 
}

main(){
  int x,y,r;
  printf("informe X:");
  scanf("%d",&x);
  printf("informe Y:");
  scanf("%d",&y);
  mmc(x,y,&r);
  printf("O MMC e :%d \n ",r);
  system("Pause");
  
}

Link para o comentário
Compartilhar em outros sites

  • 0

Você quer calcular a distância entre os dois pontos ou você quer fazer isso, tendo obrigatoriamente, o cálculo do MMC integrado?

Se o objetivo do programa é só calcular a distância entre dois pontos, é muito fácil.

Fiz o algorítmo que calcula a distância exata entre dois pontos.

#include <stdio.h>

#include <math.h>

#include <conio.h>

int main()

{

float xa;

float xb;

float ya;

float yb;

float operacao1;

float operacao2;

float operacao3;

float operacao4;

printf("Digite o valor de Xa: ");

scanf("%f" , &xa);

printf("Digite o valor de Ya: ");

scanf("%f" , &ya);

printf("Digite o valor de Xb: ");

scanf("%f" , &xb);

printf("Digite o valor de Yb: ");

scanf("%f" , &yb);

operacao1 = (xb-xa)*(xb-xa);

operacao2 = (yb-ya)*(yb-ya);

operacao3 = operacao1+operacao2;

operacao4 = sqrt(operacao3);

printf("\nA distancia entre os dois pontos %c: %f." , 130 , operacao4);

getch();

return 0;

}

Para calcular a raiz, ela não precisa ser exata.

Sua raiz pode estar dando errado porque você declarou as variáveis em tipo int. Use o tipo float e tente fazer.

Estou começando agora a programar em Linguagem C, se não for isso que você quer exatamente, me fala que eu tento de novo.

Editado por Saint Kidd
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...