Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Primfaktorzerlegung mit dynamischer Liste » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Der letzte Beitrag
AdinaNixProgrammina Primfaktorzerlegung mit dynamischer Liste

Meine Frage:
Die Aufgabe soll mittels dynamischer Speicheranforderung speichereffizient gelöst werden. Zum Einsatz kommt eine Listenstruktur, siehe Anhang.

Schreiben Sie ein Programm, dass
- eine beliebige ganze Zahl zwischen 2 und 100 einliest,
- eine Primfaktorzerlegung durchführt
- die gefundenen Primfaktoren als Elemente in einer dynamisch erzeugten Liste speichert
- und die eingelesene Zahl anschließend als Produkt ihrer Primfaktoren ausgibt.
- Schreiben Sie eine eigene Funktion für das Hinzufügen von Primfaktoren zur Liste.
- Schreiben Sie eine eigene Funktion für die Ausgabe der Primfaktoren.
Die einzelnen Primzahlen brauchen Sie mit Ihrem Programm auch diesmal nicht zu berechnen. Speichern Sie die Primzahlen von 2 bis 47 in einem Vektor.
Beispiel: Eingabe: 84
Ausgabe: 84 = 2 * 2 * 3 * 7

Meine Ideen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
#include <stdio.h>
#include <stdlib.h>

struct primfaktor
{
int pf;
struct primfaktor *next;
};

struct primfaktor *anker = NULL;
void primfaktoren_hinzufuegen(int);
void primfaktoren_ausgeben(void);

main()
{
    int zahl, i, copy;
    int primzahlen[] = {2, 3, 5, 7, 11, 13, 17, 19, 29, 31, 37, 41, 43, 47};
    
    do
    {
        printf("Geben Sie eine ganze Zahl zwischen 2 und 100 ein:");
        scanf("%d, &zahl");
    }
    while(zahl < 2 || zahl > 100);
    copy = zahl;
    i=0;
    while(zahl>1)
    {
        {
            if(zahl % primzahlen[i] ==0)
            {
                primfaktoren_hinzufuegen(primzahlen[i]);
                zahl = zahl/primzahlen[i];
            }
            else
            i++;
            printf("%d=", zahl);
            primzahlen_ausgeben;
    
    void primfaktoren_hinzufuegen(int primf)
    {
        struct primfaktor *ptr;
        ptr = struct primfaktor* malloc(sizeof(struct primfaktor));
        
        ptr->pf = primf;
        ptr->next = anker;
        anker = ptr;
    }
    void primzahlen_ausgeben(void)
    {
        struct primfaktor *ptr = anker;
        while(ptr != NULL)
        {
            if(ptr->next = NULL)
            {
                printf("%d", ptr->pf);
                ptr = ptr->next;
            }
            else
            {
                printf("%d * ", ptr->pf);
                ptr = ptr->next;
            }
        }
    }
        }
}


Zuerst wäre es gut wenn mir jemand auf die auftauchenden Fehler Hinweise geben könnte, denn ich komme da seit geraumer Zeit nicht weiter.

Danach wäre ich sehr dankbar wenn mir jemand beim Verständnis des Programms helfen könnte.

Zuerst Zeile 24 und die einzelnen Funktionen. Was bedeutet der doppelt Balken ||?

Gr0ßen Dank für Hilfe,

Adina

AdinaNixProgrammina hat dieses Bild (verkleinerte Version) angehängt:
Anker.png