Kann mir jemand bei dieser Programmieraufgabe helfen?
Hi,
Bin eine ziemlichen Niete im Programmieren mit C, hab es schwer Dinge selbst herauszufinden. Hab momentan ein paar Problemen mit einem Beispiel. Wir haben gerade die Switch Beispiele gelernt, die überfordern mich n´wenig. Hier die Aufgabe:
Danke im Vorraus.
3 Antworten
Meine erste Idee wäre in etwa:
int input,n;
printf("Bitte eine ganze Zahl eingeben: ")
scanf("%d",&input); // Fehlerhafte Eingaben abfangen wäre schön
n = input % 5;
switch(n){
case 0: input = 2 * input; break;
case 2: input = input / 2; break; // Eventuell typecasten wegen Ganzzahldivision
case 3: input = input + 3
default: input = input - 4; break;
}
printf("neuer Zahlenwert: %d",input);
Modulo Syntaxfehler (da fehlen Semikolons und ein break, aber die Syntax kriegst du vermutlich eh besser hin als ich ;) )
Bei switch brauchst du einen ausdruck oben und dann fälle jeweils mit einem break dahinter. Bei dem ausdruck wirst du wohl den modulo operator nutzen wollen.
Ich will dir eigentlich nicht direkt die lösung sagen.
rest = z%5
switch (rest)
{
case 0: z*=2 ;
break ;
case 2: z/=2 ;
break ;
case 3: z+=2 ;
break ;
default:
z -= 4 ;
}
Das sind die Reste von der Division.
z%5 liefert den Rest bei der Division durch 5.
0 heißt kein Rest, also teilbar, die anderen sind
für die anderen Reste.
Frage: Warum "case 0" "case 2/3"?