Integerwert aus Arrayelementen "zusammensetzen"
-
Hallo,
stehe gerade vor einem Teilproblem, bei dem ich nicht weiterkomme.
Aufgabe ist es, alle Elemente eines Arrays (jeweils eine einzelne Ziffer) in einem Integerwert unterzubringen.Beispiel:
array[0] = 1; array[1] = 0; array[2] = 2; array[3] = 4;
Als Ergebnis will ich dann mit
printf("%d", intZahl);
1024 sehen.
Ich habe versucht, das in einer Schleife mit Addition zu lösen, aber das kann doch schwerlich das Wahre sein?
-
Was schnelleres als von Hand durchzugehen fällt mir auf Anhieb auch nicht ein. (Bei String-Darstellung einer Zahl kannst du noch die Standard-Funktionen wie sscanf() oder atoi verwenden)
-
Mit Forenhilfe habe ich mir jetzt das gebastelt:
int getSingleInteger(const int *numbers, const int size) { int returnValue = 0; int i; for (i = 0; i < size; i++) { returnValue += numbers[i]*pow(10, (size-1-i)); } return returnValue; }
Einfacher gehts glaube ich nicht mehr?
-
returnValue = (returnValue * 10) + numbers[i];
-
Bin ich dämlich. Danke
-
Sebastian2 schrieb:
Einfacher gehts glaube ich nicht mehr?
Man könnte sich das pow() sparen:
int getInt(int *ptr, size_t length){ int zahl=0; while(length--){ zahl*=10; zahl+=*ptr++; } return zahl; }