Am o bucata de cod in C si sunt cateva linii de cod pe care nu le inteleg(ultimele 3 linii). Imi puteti explica cum lucreaza? Multumesc!
/* atof: converteste sirul de caractere s la tipul double */
double atof(char s[ ])
{
double val, putere;
int i, semn;
for (i=0; isspace(s[i]); i++) /* treci peste spatiile albe */
;
semn = (s[i] == ‘-’) ? -1 : 1;
if (s[i] == ‘+’|| s[i] == ‘-’)
i++;
Anexe:
danboghiu66:
Pune o poza cu tot codul. Ceea ce este aici e dubios rau de tot.
Răspunsuri la întrebare
Răspuns de
4
e mai "precisa"
double atof(char * s) {
double rez = 0, dec = 1;
int pct = 0, minus = 0;
if ( * s == '-') {
s++;
minus = 1;
}
while ( * s) {
if (pct) {
dec = dec / 10;
rez = rez + ( * s - '0') * dec;
}
else {
if ( * s == '.')
pct++;
else
rez = rez * 10.0 + ( * s - '0');
}
s++;
}
if (minus)
return -rez;
else
return rez;
}
Alte întrebări interesante
Biologie,
8 ani în urmă
Limba română,
8 ani în urmă
Engleza,
8 ani în urmă
Limba română,
8 ani în urmă
Chimie,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă