Anfängerfragen Programmierung in C

Hallo zusammen,

als Anfänger in Sachen Programmierung in C, habe ich folgendes Anliegen:

Ich habe eine Aufgabe zur Errechnung eines Barcodes bekommen.
(Nein hier mogelt kein Schüler)

Jedoch suche ich nicht nach einer Komplettlösung für diese, sondern lediglich nach einem Teil des codes.

Ich habe eine Zahl: Bsp.: 2245632

Hier soll jetzt abwechselnd mit 3 und 1 multipliziert und anschließend addiert werden.

3*2+1*2+3*4+1*5+3*6+1*3+3*2 = 63

Ich würde das Programm einfach zweimal multiplizieren und einmal addieren lassen, aber ich weiss nicht, wie ich es dazu bringe, jeweils mit der (1,3,5,7) bzw. (2,4,6) Stelle zu multiplizieren.

Für Tipps danke ich euch im Voraus!

Hi,
ich würde die Zahlen in ein char[] einlesen und dann in einer for-Schleife mithilfe von Modulo die ungeraden/geraden Zahlen raussuchen.
Die würde ich dann multiplizieren bzw addieren und letztendlich die Zahlen zu einer int Variable addieren.
Lg Knerd

Hallo,

Fiktives Beispiel A:

123

123 / 100 = 1
1 % 100 = 1

123 / 10 = 12
12 % 10 = 2

123 / 1 = 123
123 % 1 = 3

Fiktives Beispiel B:

bool switch = true;
for (int i = 0; i

Viel Erfolg,

Roman

Vielen Dank, hat mir sehr geholfen!!!

Tricky
Hängt ganz davon ab, wie die Zahl vorliegt.

Ist die Zahl schon als Ganzzahl gespeichert, ist etwas Rechnerei angesagt, um die Zahl wieder in die Dezimalstellen zu zerlegen.

Wird die Zahl erst als Text eingelesen oder liegt als Text vor, kann man sich diese Mühe sparen.

Den Wechsel kann man über einen zusätzlichen Schalter, einen Vergleich oder eine kleinen binären Taschenspielertrick realisieren.
Solche Tricks hat man früher gerne angewandt, wo Speicher und Rechenzeit teuer waren.

int summe = 0;
for (int multiplikator = 3; \*zeichen\_ptr;zeichen\_ptr++,multiplikator ^= 2) summe+= chartodigit(\*zeichen\_ptr)\*multiplikator;

Die Operation multiplikator ^= 2 macht aus 3 eine 1 und umgekehrt, da sie das bit1 kippt.

Bei aktuellen Compilern kann es inzwischen sogar schneller sein, mit Schalter und festen Multiplikatoren zu arbeiten.

Ciao, Allesquatsch

Hallo,

123 / 1 = 123
123 % 1 = 3

Das sieht nicht ganz richtig aus., irgendwas % 1 ist immer 0.

Gruesse,
Moritz

1 Like