Verfügbare Informationen zu "Vorlesung vom 26.05.2004"
Qualität des Beitrags: Beteiligte Poster: Manuel Forum: Elektrotechnik-Forum Forenbeschreibung: Hilfsmittel für das Studium aus dem Unterforum: Programmieren Antworten: 2 Forum gestartet am: Dienstag 18.05.2004 Sprache: deutsch Link zum Originaltopic: Vorlesung vom 26.05.2004 Letzte Antwort: vor 18 Jahren, 9 Monaten, 30 Tagen, 10 Stunden, 13 Minuten
Alle Beiträge und Antworten zu "Vorlesung vom 26.05.2004"
Re: Vorlesung vom 26.05.2004
Manuel - 26.05.2004, 19:29Vorlesung vom 26.05.2004
//DynIntArray-main.cpp
//*****************************************************************************
// Dynamisches Array
//*****************************************************************************
//Aufgabe:
//Einlesen von Tastatur und Speicherung einer erst zur
//Programm-Laufzeit bekannten Anzahl von int-Werten
#include <stdio.h>
#include <stdlib.h> //für malloc ...
void main(void)
{
int iAnz=0,i; //Anzahl int-Zahlen
int x; //Hilfsvariable
int* piArr= NULL; //Zeiger auf dynamischen Speicher
printf("Anzahl int-Zahlen?\n");
scanf("%d",&iAnz);
//int arr[iAnz]; //FEHLER
piArr = (int*) malloc(iAnz*sizeof(int));
//Test, ob Allokation erfolgreich war
if(piArr == NULL)
{
printf("Fehler bei Speicherallokation\n");
exit(1);
}
//Eingabe der int-Zahlen
for(i=0;i<iAnz;i++)
{
//scanf("%d",&x); //Einlesen
//piArr[i] =x; //Eingelesener Wert im dynamischen Array ablegen
//*(piArr+i)
//*piArr =x; piArr++;
//*piArr++ =x;
scanf("%d",piArr+i); //typisch C
}
//Testausgabe
for(i=0;i<iAnz;i++)
{
printf("%d\n",piArr[i]);
}
free(piArr);
}
Re: Vorlesung vom 26.05.2004
Manuel - 26.05.2004, 19:30
//Demoprogramm für lineare Liste
//Programm soll eine beliebige Anzahl von int-Zahlen,
//--Anzahl ist zu keinem Zeitpunkt bekannt, vgl. DynInt Array
//die über Tastatur eingelesen werden,
//in einer linearen Liste abspeichern
//Neue Elemnte sollen sortiert in die Liste eingefügt werden
#include <stdio.h>
#include <stdlib.h> //für malloc
//Typdefinition von Zahl
struct zahl
{
int x; //Nutzkomponente
struct zahl* pNext; //Zeiger auf nächstes Element
};
typedef struct zahl Zahl;
void DisplayListe(Zahl* pWurzel)
{
Zahl* pAkt = pWurzel; //Anfang der Liste
//Durchlaufen der Liste von Anfang bis Ende
while(pAkt != NULL)
{
printf("%d\n",pAkt->x);
//printf("%p",pAkt);
pAkt = pAkt->pNext; //Nächstes Element
}
}
void FreeList(Zahl* pWurzel)
{
Zahl* pAkt = pWurzel; //Anfang der Liste
Zahl* pLast=NULL;
while(pAkt != NULL)
{
pLast = pAkt ;
pAkt = pAkt->pNext;
free(pLast);
}
}
Zahl* InsertSorted(Zahl* pWurzel, int Wert)
{
Zahl* pNeu =NULL;
Zahl* pAkt =NULL;
//1.Speicher für ein Listenelement allokieren
pNeu = (Zahl*) malloc(sizeof(Zahl));
if(pNeu == NULL){
printf("Allokationsfehler\n");
exit(1);
}
//2.Eingegebene Zahl in Listelement ablegen
pNeu->x = Wert;
pNeu->pNext=NULL;
//3.Listelement in Liste einfügen
if(pWurzel == NULL) //Liste noch leer
{
pWurzel = pNeu;
}
else if(Wert < pWurzel->x ) //Element am Listanfang einfügen
{
pNeu->pNext = pWurzel;
pWurzel = pNeu;
}
else {
//pAkt zeigt auf Element vor Einfügestelle
//Einfügestelle suchen
//hinter pAkt einfügen
pAkt=pWurzel;
while(pAkt->pNext != NULL && //nicht Listenende
pAkt->pNext->x < Wert )// nächster Wert < neuer Wert
pAkt=pAkt->pNext;
//Einfügen
pNeu->pNext=pAkt->pNext; //Verkettung hinter neuem Element
pAkt->pNext =pNeu; //Neues Element anhängen
}
return pWurzel;
}
int main(void)
{
int iWert;
Zahl* pWurzel =NULL;
printf("Bitte Zahlen eingeben\n");
while(scanf("%d",&iWert) != EOF)
{
pWurzel = InsertSorted(pWurzel,iWert);
}
//Ausgabe aller Elemente der Liste
DisplayListe(pWurzel);
//Speicherfreigabe aller Elemente
FreeList(pWurzel);
return 0;
}
Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken
Weitere Beiträge aus dem Forum Elektrotechnik-Forum
Ähnliche Beiträge wie "Vorlesung vom 26.05.2004"
Mainz - RWE, 01.05.2004 - efu_96 (Mittwoch 21.06.2006)
Befund vom Bluttest ist da - Schnuekje (Montag 04.09.2006)
Horoskope vom 15.01.2006 - enfusia (Sonntag 15.01.2006)
25.12.2004 limpbizkit4ever.de goes to Trashagent - Mike (Samstag 25.12.2004)
Hot Shot vom 20.05.05 - Carlito Cena (Samstag 21.05.2005)
Vorschau 1144 vom 04.11.07 - gillo (Dienstag 25.09.2007)
Beschlüsse der Ratssitzung vom 20.01.2007 - Deathlon (Sonntag 21.01.2007)
Listening to Woche vom 20.02. - 26.02.06 - [UCF] PhInIx0r | _=NpC=_ (Freitag 24.02.2006)
Vorlesung am 1.12.06 - OzzKaa (Samstag 25.11.2006)
Bericht vom 24.09.2006 - Claire (Sonntag 24.09.2006)
