Hallo,
ich bräuchte mal ein bisschen Hilfe bzw. auch ein paar Tipps.
Folgendes Problem, wenn man einen Bruch eingibt erkennt er nicht, dass nur ein Bruch berechnet werden muss und nicht beide. Bsp. 3|2 + 7|4 = 6|4 + 7|4 = 13|4
Komme einfach nicht drauf wie ich es umschreiben kann.
Sonst wäre ich, glaube ich, soweit fertig. Evtl könnte man es ein bisschen besser umschreiben.
ich bräuchte mal ein bisschen Hilfe bzw. auch ein paar Tipps.
Folgendes Problem, wenn man einen Bruch eingibt erkennt er nicht, dass nur ein Bruch berechnet werden muss und nicht beide. Bsp. 3|2 + 7|4 = 6|4 + 7|4 = 13|4
Komme einfach nicht drauf wie ich es umschreiben kann.
Sonst wäre ich, glaube ich, soweit fertig. Evtl könnte man es ein bisschen besser umschreiben.
C:
#include <stdio.h>
main() {
int zaehler1, zaehler2, nenner1, nenner2, zahl;
int r = 0;
int kgv;
marker:;
printf("\nBitte Zaehler vom ersten Bruch eingeben: ");
scanf_s("%i", &zaehler1);
do {
printf("\nBitte den Nenner vom ersten Bruch eingeben: ");
scanf_s("%i", &nenner1);
if (nenner1 != 0) {
break;
}
printf("\nNenner darf nicht 0 sein!");
} while (nenner1 == 0);
printf("\nBitte den Zaehler vom zweiten Bruch eingeben: ");
scanf_s("%i", &zaehler2);
do {
printf("\nBitte den Nenner vom zweiten Bruch eingeben: ");
scanf_s("%i", &nenner2);
if (nenner2 != 0) {
break;
}
printf("\nNenner darf nicht 0 sein!");
} while (nenner2 == 0);
printf("\nBitte Rechenzeichen waehlen (1 = + 2 = - 3 = * 4 = /) :");
scanf_s("%i", &zahl);
if (zahl == 1) {
if (nenner1 == nenner2) {
printf("\n %i|%i + %i|%i = %i|%i", zaehler1, nenner1, zaehler2, nenner2, zaehler1 + zaehler2, nenner1);
}
else {
int zaehler3 = zaehler1 * nenner2;
int nenner3 = zaehler2 * nenner1;
int ergebniszaehler = zaehler3 + nenner3;
int *zeiger;
zeiger = &nenner1;
int *zeiger2;
zeiger2 = &nenner2;
int *zeiger3;
zeiger3 = &ergebniszaehler;
int *zeiger4;
zeiger4 = &kgv;
int p = nenner1;
int q = nenner2;
while (q != 0) {
r = p % q;
p = q;
q = r;
}
kgv = (*zeiger * *zeiger2) / p;
printf("\n Ergebnis %i|%i + %i|%i = %i|%i + %i|%i = %i|%i", zaehler1, nenner1, zaehler2, nenner2, zaehler3, kgv, nenner3, kgv, ergebniszaehler, kgv);
int x = ergebniszaehler;
int y = kgv;
while (y != 0) {
r = x % y;
x = y;
y = r;
}
printf("\n Gekuertzt ist der Bruch %i|%i", *zeiger3 / x, *zeiger4 / x);
}
}
if (zahl == 2) {
if (nenner1 == nenner2) {
printf("\n %i|%i - %i|%i = %i|%i", zaehler1, nenner1, zaehler2, nenner2, zaehler1 - zaehler2, nenner1);
}
else {
int zaehler3 = zaehler1 * nenner2;
int nenner3 = zaehler2 * nenner1;
int ergebniszaehler = zaehler3 - nenner3;
int *zeiger;
zeiger = &nenner1;
int *zeiger2;
zeiger2 = &nenner2;
int *zeiger3;
zeiger3 = &ergebniszaehler;
int *zeiger4;
zeiger4 = &kgv;
int p = nenner1;
int q = nenner2;
while (q != 0) {
r = p % q;
p = q;
q = r;
}
kgv = (*zeiger * *zeiger2) / p;
printf("\n Ergebnis %i|%i - %i|%i = %i|%i - %i|%i = %i|%i", zaehler1, nenner1, zaehler2, nenner2, zaehler3, kgv, nenner3, kgv, ergebniszaehler, kgv);
int x = ergebniszaehler;
int y = kgv;
while (y != 0) {
r = x % y;
x = y;
y = r;
}
printf("\n Gekuertzt ist der Bruch %i|%i", *zeiger3 / x, *zeiger4 / x);
}
}
if (zahl == 3) {
int ergebnis1 = zaehler1 * zaehler2;
int ergebnis2 = nenner1 * nenner2;
int *zeiger;
zeiger = &ergebnis1;
int *zeiger2;
zeiger2 = &ergebnis2;
printf("\n %i|%i * %i|%i = %i|%i", zaehler1, nenner1, zaehler2, nenner2, ergebnis1, ergebnis2);
int p = ergebnis1;
int q = ergebnis2;
while (q != 0) {
r = p % q;
p = q;
q = r;
}
printf("\n Gekuertzt ist der Bruch %i|%i", *zeiger / p, *zeiger2 / p);
}
if (zahl == 4) {
int ergebnis1 = zaehler1 * nenner2;
int ergebnis2 = zaehler2 * nenner1;
int *zeiger;
zeiger = &ergebnis1;
int *zeiger2;
zeiger2 = &ergebnis2;
printf("\n %i|%i / %i|%i = %i|%i", zaehler1, nenner1, zaehler2, nenner2, ergebnis1, ergebnis2);
int p = ergebnis1;
int q = ergebnis2;
while (q != 0) {
r = p % q;
p = q;
q = r;
}
printf("\n Gekuertzt ist der Bruch %i|%i", *zeiger / p, *zeiger2 / p);
}
goto marker;
}
Zuletzt bearbeitet von einem Moderator: