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; }

Rispondi quotando