Jump to content
Fórum Script Brasil
  • 0

Calcular MMC em C


rflbboy

Question

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á!

Edited by rflbboy
Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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.

Edited by Saint Kidd
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...