C :: Aufgabe #1 :: Lösung #5
7 Lösungen
#1
Multiplikation ohne zu multiplizieren
Anfänger - C
von Gustl
- 11.11.2012 um 17:24 Uhr
Erstellen Sie ein Konsolenprogramm welches dem Benutzer auffordert 2 Zahlen einzugeben, diese sollen dann multipliziert werden, jedoch ist nur die Grundrechenart Addition erlaubt.
Wenn einer der 2 Zahlen keine Zahl ist, soll eine Fehlermeldung ausgegeben werden und der Benutzer noch einmal aufgefordert werden eine Zahl einzugeben.
Wenn einer der 2 Zahlen keine Zahl ist, soll eine Fehlermeldung ausgegeben werden und der Benutzer noch einmal aufgefordert werden eine Zahl einzugeben.
#5
von mraimbot (590 Punkte)
- 04.01.2019 um 22:40 Uhr
/*
* Datei: Aufgabe-0001.c
* Datum: 04.01.2019
*
* Aufgabe: Multiplikation ohne zu multiplizieren
* Erstellen Sie ein Konsolenprogramm welches dem Benutzer auffordert 2 Zahlen einzugeben,
* diese sollen dann multipliziert werden, jedoch ist nur die Grundrechenart Addition erlaubt.
*
* Wenn einer der 2 Zahlen keine Zahl ist, soll eine Fehlermeldung ausgegeben werden
* und der Benutzer noch einmal aufgefordert werden eine Zahl einzugeben.
*/
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
int getNumber(char *numberAsString);
int multiplication(int operant1, int operant2);
int main (int argc, char **argv) {
int numbers[3] = { 0 };
numbers[0] = getNumber((2 <= argc) ? argv[1] : NULL);
numbers[1] = getNumber((3 <= argc) ? argv[2] : NULL);
numbers[2] = multiplication(numbers[0], numbers[1]);
printf("%i * %i = %i", numbers[0], numbers[1], numbers[2]);
return EXIT_SUCCESS;
}
int getNumber(char *numberAsString) {
int result = 0;
int number = 0;
char ch;
if (numberAsString != NULL) {
result = sscanf_s(numberAsString, "%i", &number);
if (result != 1) {
printf("%s ist keine gueltige Ganzzahl.\n", numberAsString);
}
}
while (result != 1) {
printf("Ganzzahl eingeben: ");
result = scanf_s("%i", &number);
while ((ch = getchar()) != '\n' && ch != EOF);
if (result != 1) {
printf("Ihre Eingabe ist keine gueltige Ganzzahl.\n");
}
}
return number;
}
int multiplication(int operant1, int operant2) {
int solution = 0;
if (operant1 < 0) {
operant2 *= -1;
operant1 *= -1;
}
for (int i = 0; i < operant1; ++i) {
solution += operant2;
}
return solution;
}
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
