This commit is contained in:
Daniel Zwanzig 2025-05-08 14:14:34 +02:00
parent c1f18f8639
commit 311f3b6c24

View File

@ -1,42 +1,3 @@
/*#include <stdio.h>
typedef struct
{
unsigned vorkomma;
unsigned nachkomma;
}Komma;
void additionVor(Komma p){
int vor = 0;
vor+= p.vorkomma;
}
void printKomma(Komma x)
{
printf("%u,%u", x.vorkomma,x.nachkomma);
};
int main(){
int vor;
int tmp, nach;
//printf("Vorkomma: %d\nNachkomma: %f", vorkomma, nachkomma);
printf("Gib Deine Kommazahlen ein (Abschluss mit Leerzeile)");
scanf("%d", &tmp);
vor = (int)tmp;
nach = tmp - vor;
Komma zahl = {vor,nach};
additionVor(zahl);
printKomma(zahl);
}*/
#include <stdio.h>
#include <string.h>
@ -85,19 +46,19 @@ int main() {
while (1) {
fgets(eingabe, MAX, stdin);
eingabe[strcspn(eingabe, "\n")] = '\0';
eingabe[strcspn(eingabe, "\n")] = '\0'; //Ersetzt "\n"(Abbruchbedingung) mit '\0', damit das Programm nicht abbricht
if (strlen(eingabe) == 0) break;
if (strlen(eingabe) == 0)
break; // Wenn die Eingabe nach dem Entfernen von "\n" leer ist, wird das Programm abgebrochen
char *kommaPos = strchr(eingabe, ',');
char *kommaPos = strchr(eingabe, ','); // Erstellt einen Zeiger auf den Speicher wo das Komma des Strings liegt
if (kommaPos != NULL) {
*kommaPos = '\0';
char *nachkommateil = kommaPos + 1;
*kommaPos = '\0'; // Ersetzt das Komma mit '\0' um den String in zwei Teile zu splitten
char *nachkommateil = kommaPos + 1; // setzt einen Pointer auf den Anfang der Nachkommastellen
zahl.vorkomma = stringZuInt(eingabe);
zahl.vorkomma = stringZuInt(eingabe); //Wandelt den String in einen Int um und speichert den Wert im Struct
zahl.nachkomma = nachkommaZuInt(nachkommateil);
} else {
// Nur ganzzahliger Teil
} else { // Damit bei einer ganzzahligen Zahl nicht die nachkomma Zahl als Fehleingabe deklariert wird, wird hier nur die vorkomma Zahl zum Int konvertiert
zahl.vorkomma = stringZuInt(eingabe);
zahl.nachkomma = 0;
}
@ -109,9 +70,11 @@ int main() {
summe.vorkomma += zahl.vorkomma;
summe.nachkomma += zahl.nachkomma;
vor += zahl.vorkomma;
vor += zahl.vorkomma; // Für die Ausgabe unten, ohne den addierten Überlauf
nach += zahl.nachkomma;
if (summe.nachkomma >= 1000000) {
if (summe.nachkomma >= 1000000) { // Addiert den überlauf der nachkomma Zahl auf die Vorkommazahl
summe.vorkomma += 1;
summe.nachkomma -= 1000000;
}