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