Ich möchte ein int-Array mit konstanten Werten initialisieren, mit allen 2^n Werten von 2^0 bis 2^31 und ich möchte wissen, welche Methode unten richtig ist und ob es die Ergebnis, das ich will und wenn es leichtere oder kürzere Methoden gibt, es zu initialisieren.Ich deklariere mein int-Array in C
static const char two_n[32];
two_n[32] = {1, 2 ,4 ,8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096,
8192, 16384, 32768, 65535, 131070, 262140, 524280, 1048560,
2097152, 4194304, 8388608, 16777216, 33554432, 67108864, 134217728,
268435456, 536870912, 1073741824, 2147483648};
oder
static const char *two_n[32];
two_n[32] = {1, 2 ,4 ,8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096,
8192, 16384, 32768, 65535, 131070, 262140, 524280, 1048560,
2097152, 4194304, 8388608, 16777216, 33554432, 67108864, 134217728,
268435456, 536870912, 1073741824, 2147483648};
oder
static const int two_n[32];
two_n[32] = {1, 2 ,4 ,8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096,
8192, 16384, 32768, 65535, 131070, 262140, 524280, 1048560,
2097152, 4194304, 8388608, 16777216, 33554432, 67108864, 134217728,
268435456, 536870912, 1073741824, 2147483648};
Keine von diesen arbeiten. Hast du gerade den Code ausprobiert und die Ergebnisse gesehen? Sie müssen Ihr Verständnis von Arrays überprüfen. Versuchen Sie etwas einfacheres. –
65535 ist falsch zusammen mit einigen mehr danach. Sie sollten besser das Array mit einer einfachen "for" -Schleife füllen, wenn das Programm startet. Oder Sie könnten die hexadezimale Notation für die Konstanten verwenden, da die hexadezimalen Werte einem schönen offensichtlichen Muster folgen. – user3386109
Danke für die Kommentare, ich bin in einer Schule, wo die Verwendung der for-Schleifen im ersten Jahr verboten ist, und ich kann nicht hexadezimal verwenden, weil ich ein Programm machen muss, das Zahlen mit Radix sortiert, und ich konvertiere Zahlen zu binäre Basis dann Sortierung mit aufsteigender binärer Reihenfolge. –