Questo programma dovrebbe stampare un numero(anche decimale, a seconda dei casi), ma anche quando esegue una divisione ed ottiene un risultato decimale lo stampa intero(approssima), perchè?
codice:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define dmax 100
float me(char frase[]);
int main(){
char frase[dmax];
printf("Insert a string:\n");
gets(frase);
printf("La media dei caratteri e': %f",me(frase));
getch();
}
float me(char frase[]){
int i=0;
int contp=0,contlp=0;
while(frase[i]!='\0'){
if((isalpha(frase[i]))||(isdigit(frase[i]))){
contp++;
contlp++;
i++;
while((isalpha(frase[i]))||(isdigit(frase[i]))){
contlp++;i++;
}
}
else i++;
}
return contlp/contp;
}