Nabend zusammen,
ich nun einmal intensiv angefangen mich mit C zu beschäftigen und benutze das Buch "Progammieren lernen mit C". Bin im Kapitel wo Algorithmen bearbeitet werden. Da habe ich nun die Aufgabe ein Programm zu schreiben, was den größten gemeinsamen Teiler errechnet, doch irgendetwas mache ich falsch, ich bekomme immer falsche Ergebnisse. Ich sehe aber einfach nicht was. Der Pseudocode ist vorgegeben:
a und b einlesen;
Wiederhole
Berechne den Rest r der Ganzzahldivision a / b.
Ersetze a durch b.
Ersetze b durch den berechneten Rest.
bis Rest r gleich Null ist.
Der letzte Wert von a ist der GGT.
Dazu habe ich jetzt folgendes geschrieben:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#include <stdio.h>
int main(void)
{
int a, b, r, zaehler;
printf("Programm zur Berechnung des GGT von 2 natürlichen Zahlen.\n\n");
printf("Geben Sie nacheinander 2 Zahlen an.\n");
printf("Zahl 1: "); scanf("%i", &a);
printf("Zahl 2: "); scanf("%i", &b);
do {
zaehler++;
printf("%i. Durchgang.\n", zaehler);
r = a/b;
a = b;
b = r;
printf("Zahl 1: %i\nZahl 2: %i\nRest: %i\n\n", a, b, r);
} while (r != 0);
printf("Der GGT ist %i.\n", a);
return 0;
}
|
Aber wie gesagt, ich bekomme immer falsche Ergebnisse. Kann mir jemand sagen warum? Oder ist es was total einfaches, was ich übersehe?
Grüße
Elessar