File: Stare vježbe/vjezbe06/41__atof.c
/* 41__atof.c ----- Implementacija funkcije atof koja sluzi za pretvaranje unesenog stringa u realni broj (tip double) */ #include <stdio.h> /* u ctype.h nalaze se deklaracije funkcija isspace i isdigit */ #include <ctype.h> #define MAXREDAK 100 double atof(char s[]) { double vrijednost, potencija; int i, predznak; for (i=0; isspace(s[i]); i++); predznak = (s[i] == '-') ? -1 : 1; if (s[i] == '+' || s[i] == '-') i++; for (vrijednost = 0.0; isdigit(s[i]); i++) vrijednost = 10.0 * vrijednost + (s[i] - '0'); if (s[i] == '.') i++; for (potencija = 1.0; isdigit(s[i]); i++) { vrijednost = 10.0 * vrijednost + (s[i] -'0'); potencija *= 10.0; } return predznak * vrijednost / potencija; } int main() { double suma, atof( char[]); char redak[MAXREDAK]; suma = 0.0; while (gets(redak) != NULL) printf("\t%f\n", atof (redak )); return 0; }
|