Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Buzzz
    Registrato dal
    Jan 2009
    Messaggi
    775

    [C] calcola MCD e MCM



    sto eseguendo un semplicissimo programmino per scuola (-.-).. xD
    lavoro su linux, con Codelite, e compilo/eseguo il programma tramite il terminare.. lo compila senza errori, mi calcola bene l'elevamento a potenza, solo che quando lo eseguo invece di darmi il MCD e il MCM mi dice "Eccezione in virgola mobile".. ><

    le due funzioni dovrebbero essere corrette, al massimo devo darci un'occhiata in più.. ma vorrei sapere il perchè mi da quell'errore.. qualcuno sa come aiutarmi?

    codice:
    #include <stdio.h>
    
    //inserisci valori
    int insVal(){
        int a;
    	do{
    		printf("Inserisci il valore: ");
    		scanf("%d",&a);
    	}while(a<0);
        return a;
    }
    
    //calcola l'elevamento a potenza
    int calcElev(int x,int y){
        int i,elev=1;
        for(i=0;i<y;i++){
    		elev=elev*x;
    	}
        return elev;
    }
    
    //Minimo Comun Divisore
    int calcMinCD(int x,int y){
        int MCD,i;
    	for(i=0;i<x;i++){
    		if(x%i==0 && y%i==0){
    			MCD=i;
    			break;
    		}
    	}
    	return MCD;
    }
    
    //Massimo Comune Multiplo
    int calcMaxCM(int x,int y){
        int MCM,i;
    	if(x>=y){
    		if(x%y==0){
    			MCM=x;
    		}else{
    			MCM=x*y;
    		}
    	}
    	return MCM;
    }
    
    void main(){
        int dat1,dat2,cont=1;
       
        dat1=insVal();
        dat2=insVal();
    	
    	printf("\nPrimo: %d",dat1);
    	printf("\nSecondo: %d\n",dat2);
    	printf("\nElevamento: %d\n",calcElev(dat1,dat2));
    	printf("\nMinimo Comun Divisore: %d\n",calcMinCD(dat1,dat2));
    	printf("\nMassimo Comune Multiplo: %d\n",calcMaxCM(dat1,dat2));
    
        getchar();
    }
    Grazie mille a tutti

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Se nel calcolo dell'MCD il ciclo comincia da 0, allora avrai una divisione per zero nel calcolo del modulo.

    E sei sicuro degli algoritmi usati?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di Buzzz
    Registrato dal
    Jan 2009
    Messaggi
    775
    ho modificato il for del MCD mettendo 1 invece che 0, però inserendo i numeri 2 e 6, mi da:

    MCD: 1
    MCM: 3829748


  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da Buzzz
    ho modificato il for del MCD mettendo 1 invece che 0, però inserendo i numeri 2 e 6, mi da:

    MCD: 1
    MCM: 3829748

    Infatti ... ti avevo scritto

    "E sei sicuro degli algoritmi usati?"
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di Buzzz
    Registrato dal
    Jan 2009
    Messaggi
    775
    praticamente penso proprio di si.. ci ho pensato un attimo, e dovrebbero essere corretti..
    ora comuqnue provo a darci un occhio, vediamo se trovo l'errore..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.