Seite 1 von 1

Die Quersumme der Quersumme in C

Verfasst: Sa Jan 14, 2012 2:16 am
von Nicole
Guten Abend,
ich habe folgendes Problem:
Ich habe es nun geschafft die Quersumme zu berechnen, von einen zuvor eingegebenen String in einen Array.
Doch nun benötige ich von dieser Quersumme nochmals die Quersumme, doch komm ich einfach nicht drauf wie ich das zuvor erhaltende Ergebnis so aufteilen kann, dass ich auf beide Zahlen (in meinen Fall sind es immer zwei) zugreifen kann und sie miteinander addieren lassen kann. Ich hoffe ihr könnt mir dabei etwas helfen. Ich versuche das schon ne ganze weile.
Ich habe ein den Teil von meinen Programm, der mir Probleme macht, mal leicht abgeändert dargestellt.
Danke.

Code: Alles auswählen

#include <stdio.h>
#include <string.h>

int main (void)
{
  char eingabe[5] = {0};
  int quersumme = 0;
  printf("Bitte Zahl eingeben: ");
  scanf("%s", eingabe);
  quersumme = (eingabe[0] + eingabe[1] + eingabe[2] + eingabe[3] + eingabe[4]) - 5 * '0';
  printf("quersumme: %d \n", quersumme);
}
Nun brauche ich die Quersumme von "quersumme". Ich bin ratlos :(

Edit cloidnerux: Code Tags hinzugefügt

Re: Die Quersumme der Quersumme in C

Verfasst: Sa Jan 14, 2012 12:40 pm
von cloidnerux
Hi und Willkommen im Forum.
Nun brauche ich die Quersumme von "quersumme".
Die Lösung deines Problems ist der MODULO-Operator: "%". Er wird angewendet wie der Divisionsoperator "/", gibt aber den ganzzahligen Rest der Division zurück, mit diesem Rest kannst du dann durch die Zehnerstellen iterieren:

Code: Alles auswählen

int pow(int basis, int exponent)
{
int ergebnis=1;
for(; exponent > 0; exponent--)
{
    ergebnis *= basis;
}
return ergebnis;
}
...

int zahl; //Die Zahl die der Nutzer eingegeben hat, auf den teil verzichte ich hier einfach mal
int rest = 0;
int quersumme = 0;
for(int i = 3; i > 0; i++)
{
    rest = zahl % pow(10, i); //Den Rest der Division bestimmen, z.B 2234 % 1000 = 234
    quersumme += zahl / pow(10, i); //Die entsprechende Zehnerstelle bekommen: 2234 / 1000 = 2
}
MfG cloidnerux.