Archiv verlassen und diese Seite im Standarddesign anzeigen : integer stelligkeit prüfen
kann ich mit einer Fkt. prüfen, ob ein integer einstellig (z.B. 1,2, ... 9), oder zweistellig (10, 11 , 12 ... 99) etc. ist ?
SeeksTheMoon
31-12-2002, 11:31
Du kannst die Zahl mit dem Modulo (%) Operator immer weiter zerlegen und weißt dann, wie viele Stellen sie hat
Hi,
eine Möglichkeit:
#include <stdio.h>
int digits (int num)
{
int d = 1;
while (num/=10)
d++;
return (d);
}
int main (void)
{
int num [] = { -425, -1, 0, 1, 10, 15, 100, 425, 1000, 2321, 10000, 14023, 100000, 201000 };
int i;
for (i=0; i < 14; i++)
printf ("%i -> %i-stellig\n", num[i], digits (num[i]));
return 0;
}
Gruß micha
anda_skoa
31-12-2002, 19:54
Es geht natürlich auch über den Logarithmus.
Da es in der C Math Bibliothek keinen 10er Logariothmus gibt, muß man eine Äquivalente berechnung mit dem natürlichen Logarithmus machen:
#include <math.h>
double log10(double x)
{
return (log(x) / log(10));
}
log10(10) wäre dann 1
log10(100) wäre dann 2
etc.
Ciao,
_
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.