Mcm tra due numeri in c++

di il
2 risposte

Mcm tra due numeri in c++

Ciao ragazzi! E' da poco che ho iniziato a studiare c++ ed ho un pò di problemi con un codice per il calcolo del risultato tra due frazioni, il problema però è sorto prima, cercando di determinare il minimo comune multiplo nel caso l'operatore matematico tra le due frazioni fosse stato + oppure - .
Per ora quindi sono bloccata a questo, in quanto il calcolo del mcm così fatto non funziona...

#include <stdio.h>
#include <ctype.h>
int main(void)
{
	int n1,n2,d1,d2,mcm,count;
	char ch;
	
	printf("Inserisci la frazione separata da un operatore matematico: ");
	scanf("%d/%d%c%d/%d", &n1,&d1,&ch,&n2,&d2);
	
	if(d1>d2){
		if(d1%d2==0)
         	mcm=d1;
            	else if(d1%d2!=0)
            	     while(d1%d2!=0){
            	     	d1++;
            	     	mcm=d1;
					 }
	}
	
	if(d2>d1)  //*non continuato dato che il metodo non funziona*//
	mcm=d2;
	
	printf("%d", mcm);
	return 0;
}
Il problema dovrebbe essere il ciclo, in quanto il primo if funziona, vi ringrazio in anticipo.

2 Risposte

  • Re: Mcm tra due numeri in c++

    Io avrei ragionato matematicamente in modo diverso!
    Sapendo che il mcm tra 2 o più numeri interi non è nient'altro che il più piccolo numero intero che è divisibile per ogni singolo numero di input, a prescindere se i numeri d'ingresso siano maggiori o minori di zero, per il calcolo dell'mcm questo non importa, perchè i segni saranno riferiti ai numeratori solo dopo aver trovato il mcm.
    Quindi io se fossi in te creerei un ciclo while in cui vi è una condizione che faccia il paragone dei resti tra il contatore%d1 e contatore%d2, se entrambi danno come risultato 0, mcm = numero contatore!
  • Re: Mcm tra due numeri in c++

    int mcm(int a,int b){
    	int t=a;
    	while(t%b!=0){
    		t+=a;
    	}
    	return t;
    }
    Nel caso a>b
Devi accedere o registrarti per scrivere nel forum
2 risposte