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

Informatiker Board » Themengebiete » Praktische Informatik » Primfaktorzerlegung mit dynamischer Liste » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Primfaktorzerlegung mit dynamischer Liste
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
AdinaNixProgrammina
unregistriert
Primfaktorzerlegung mit dynamischer Liste Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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

11.07.2017 08:40
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Primfaktorzerlegung mit dynamischer Liste