Änderung einer Arraylänge
Änderung einer Arraylänge
Hey und zwar folgendes Problem: Ich muss in einer Zahl die Position von einer bestimmten Ziffer bestimmen, die Zahl, die am weitesten links ist ist die Position 0, die rechts daneben 1 und so weiter. weiter. Da ich Anfangs ja nicht weiß, wie groß die Zahl sein wird und was dann die Länge des Arrays mit den einzelnen Ziffern sein wird, wollte ich wissen, ob es irgendwie möglich wäre die Länge des Arrays während der Laufzeit zu ändern. Weil die Zahl ja weniger Ziffern hat, wenn sie 50 ist als wenn sie zb 2828854 ist.
Ich hoffe man versteht meine Frage
Ich hoffe man versteht meine Frage
lernender Programmierer, hauptsächlich C# und Java
- cloidnerux
- Moderator
- Beiträge: 3123
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: Änderung einer Arraylänge
Was du suchst ist kein array, sondern eine Liste. Dort kannst du mit "add" Elemente hinzufügen.
Ansonsten kannst du auch einfach durch deine Zahl durchgehen und die Anzahl der Ziffern zählen.
Ansonsten kannst du auch einfach durch deine Zahl durchgehen und die Anzahl der Ziffern zählen.
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum
Re: Änderung einer Arraylänge
Und wie kann ich die Anzahl der Ziffern zählen?(Wir dürfen keine Listen verwenden)
lernender Programmierer, hauptsächlich C# und Java
- Xin
- nur zu Besuch hier
- Beiträge: 8861
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Änderung einer Arraylänge
Ich gehe davon aus, dass die Zahl erstmal als 'int' vorliegt.DerSamu hat geschrieben:Und wie kann ich die Anzahl der Ziffern zählen?(Wir dürfen keine Listen verwenden)
Du kodierst sie zweimal. Einmal findest Du dabei heraus, wieviele Stellen sie hat und einmal packst Du die Ziffern in das Array.
Alternativ nimmst Du ein Array, das so groß ist, dass jede Zahl reinpasst. Die größte Zahl, die in ein int passt dürfte 2 Milliarden groß sein, also 10 Stellen haben, plus Vorzeichen.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Re: Änderung einer Arraylänge
Und das herausfinden der Stelle mache ich einfach, indem ich eine while Schleife mit einen Counter mache, und in dieser while schleife die zahl solange durch 10 dividiere bis sie 0 ist und jedes mal counter++ rechne oder? Oder gibt es einen einfacheren Weg?
lernender Programmierer, hauptsächlich C# und Java
- cloidnerux
- Moderator
- Beiträge: 3123
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: Änderung einer Arraylänge
Mitunter lässt sich etwas mit dem logarithmus berechnen
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum
- Xin
- nur zu Besuch hier
- Beiträge: 8861
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Änderung einer Arraylänge
Ich wüsste nicht.DerSamu hat geschrieben:Und das herausfinden der Stelle mache ich einfach, indem ich eine while Schleife mit einen Counter mache, und in dieser while schleife die zahl solange durch 10 dividiere bis sie 0 ist und jedes mal counter++ rechne oder? Oder gibt es einen einfacheren Weg?
Mit log10 ja.cloidnerux hat geschrieben:Mitunter lässt sich etwas mit dem logarithmus berechnen
Grob geraten:
Code: Alles auswählen
int main()
{
double value = 10000;
printf("log10(%lf) = %lf\n", value, floor(log10(value))+1);
return 0;
}
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Re: Änderung einer Arraylänge
Wenn das und genau das die Aufgabe ist, brauchst Du keine Arrays, nur ein wenig Hirnschmalz.DerSamu hat geschrieben:... Ich muss in einer Zahl die Position von einer bestimmten Ziffer bestimmen, die Zahl, die am weitesten links ist ist die Position 0, die rechts daneben 1 und so weiter. weiter ...
Mach' dir klar, was es im Dezimalsystem bedeutet, wenn eine Ziffer in einer Zahl an einer bestimmten Position steht (Hinweis: teile die Zahl mal in einer Schleife wiederholt durch 10).
Dann überlegst Du dir, was der Modulo-Operator (%) macht.
It's as simple as that. And remember, Beethoven wrote his first symphony in C.
Re: Änderung einer Arraylänge
Nein, die Angabe ist natürlich noch deutlich länger, wollte aber jetzt hier nicht alles reinschicken, weil mir sonst jemand den ganzen Code geschickt hätte, und ich will schon selber nachdenken
Kleine Frage nebenbei, hat nichts damit zu tun: Wenn ich in der Schule C# lerne, würdet ihr sagen, dass es Sinn macht nebenbei C zu lernen? Oder eher Java?
Kleine Frage nebenbei, hat nichts damit zu tun: Wenn ich in der Schule C# lerne, würdet ihr sagen, dass es Sinn macht nebenbei C zu lernen? Oder eher Java?
lernender Programmierer, hauptsächlich C# und Java
- Xin
- nur zu Besuch hier
- Beiträge: 8861
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Änderung einer Arraylänge
Ähm... ja... haste auch rechtmfro hat geschrieben:Wenn das und genau das die Aufgabe ist, brauchst Du keine Arrays, nur ein wenig Hirnschmalz.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.