Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Lista jednokierunkowa [c]

Ostatnio zmodyfikowano 2016-01-17 15:49
Autor Wiadomość
Fafkorn
Temat założony przez niniejszego użytkownika
Lista jednokierunkowa [c]
» 2016-01-16 17:41:04
Mam stworzyć listę struktur. Jak na razie mam program do którego mogę wstawić jedną strukturę i wyświetlić tylko ją. Nie mam pomysłu jak to przerobić na program, który potrafi wczytać i wyświetlić kilka takich struktur

C/C++
#include <stdio.h>
#include <stdlib.h>

struct lista {
    int datag;
    int datam;
    int datad;
    int datami;
    int datar;
    float temp;
    float wilg;
    float cis;
    float wiatr;
    struct lista * next;
};

typedef struct lista element;


void main()
{
    element * biezacy, * poczatek;
    int i;
   
    poczatek = NULL;
   
    int datag, datam, datad, datami, datar;
    float temp, wilg, cis, wiatr;
    printf( "Podaj godzine: " );
    scanf( "%d", & datag );
    printf( "Podaj minute: " );
    scanf( "%d", & datam );
    printf( "Podaj dzien: " );
    scanf( "%d", & datad );
    printf( "Podaj miesiac: " );
    scanf( "%d", & datami );
    printf( "Podaj rok: " );
    scanf( "%d", & datar );
    printf( "Podaj temperature [stopnie Celsjusza]: " );
    scanf( "%f", & temp );
    printf( "Podaj wilgotnosc [%%]: " );
    scanf( "%f", & wilg );
    printf( "Podaj cisnienie [hPa]: " );
    scanf( "%f", & cis );
    printf( "Podaj predkosc wiatru [km/h]: " );
    scanf( "%f", & wiatr );
    printf( "\n" );
   
    biezacy =( element * ) malloc( sizeof( element ) );
    biezacy->datag = datag;
    biezacy->datam = datam;
    biezacy->datad = datad;
    biezacy->datami = datami;
    biezacy->datar = datar;
    biezacy->temp = temp;
    biezacy->wilg = wilg;
    biezacy->cis = cis;
    biezacy->wiatr = wiatr;
    biezacy->next = poczatek;
    poczatek = biezacy;
   
    biezacy = poczatek;
   
    while( biezacy ) {
        printf( "Godzina %d:%d Dnia %d.%d.%d\nTemperatura: %f stopni C\nWilgotnosc: %f %%\nCisnienie: %f hPa\nPredkosc wiatru: %f km/h\n\n", biezacy->datag, biezacy->datam, biezacy->datad, biezacy->datami, biezacy->datar, biezacy->temp, biezacy->wilg, biezacy->cis, biezacy->wiatr );
        biezacy = biezacy->next;
    }
   
   
   
   
   
   
   
    getch();
    return 0;
}
[ / code ]
P-143592
mateczek
» 2016-01-16 22:29:38
lista może coś w tym stylu !!!
C/C++
#include <iostream>

using namespace std;

struct element {
    int skladnik;
    element * next;
};

struct lista {
    element * poczatek, * poprzedni;
    void create( int rozm ) {
        poczatek = new element;
        poprzedni = poczatek;
        for( int i = 1; i < rozm; i++ ) {
            element * temp = new element;
            temp->skladnik = i;
            temp->next = NULL;
            poprzedni->next = temp;
            poprzedni = temp;
        }
    }
    ~lista() {
        while( poczatek ) {
            element * temp = poczatek;
            delete poczatek;
            poczatek = temp->next;
        }
    }
    void wypisz() {
        element * el = poczatek;
        while( el ) {
            cout << el->skladnik << endl;
            el = el->next;
        }
    }
};


int main()
{
    lista tab;
    tab.create( 20 );
    tab.wypisz();
   
}
P-143607
Fafkorn
Temat założony przez niniejszego użytkownika
» 2016-01-17 09:07:41
Tylko, że mój program jest w języku c
P-143620
Fafkorn
Temat założony przez niniejszego użytkownika
» 2016-01-17 15:49:10
Trochę nad nim popracowałem, ale program działa tylko dla pierwszej struktury.

#include <stdio.h>
#include <stdlib.h>

struct lista {
    int datag[10];
    int datam[10];
    int datad[10];
    int datami[10];
    int datar[10];
    float temp[10];
    float wilg[10];
    float cis[10];
    float wiatr[10];
    struct lista * next;
};

typedef struct lista element;


void main()
{
element * biezacy, * poczatek;
int i, j;
poczatek = NULL;
printf("Ile wynikow chcesz dodac?");
scanf("%d",&j);

int datag[10], datam[10], datad[10], datami[10], datar[10];
float temp[10], wilg[10], cis[10], wiatr[10];

for(i=0;i<j;i++)
{
    printf( "Podaj godzine: " );
    scanf( "%d", & datag[i] );
    printf( "Podaj minute: " );
    scanf( "%d", & datam[i] );
    printf( "Podaj dzien: " );
    scanf( "%d", & datad[i] );
    printf( "Podaj miesiac: " );
    scanf( "%d", & datami[i] );
    printf( "Podaj rok: " );
    scanf( "%d", & datar[i] );
    printf( "Podaj temperature [stopnie Celsjusza]: " );
    scanf( "%f", & temp[i] );
    printf( "Podaj wilgotnosc [%%]: " );
    scanf( "%f", & wilg[i] );
    printf( "Podaj cisnienie [hPa]: " );
    scanf( "%f", & cis[i] );
    printf( "Podaj predkosc wiatru [km/h]: " );
    scanf( "%f", & wiatr[i] );
    printf( "\n" );

    biezacy =( element * ) malloc( sizeof( element ) );
    biezacy->datag[i] = datag[i];
    biezacy->datam[i] = datam[i];
    biezacy->datad[i] = datad[i];
    biezacy->datami[i] = datami[i];
    biezacy->datar[i] = datar[i];
    biezacy->temp[i] = temp[i];
    biezacy->wilg[i] = wilg[i];
    biezacy->cis[i] = cis[i];
    biezacy->wiatr[i] = wiatr[i];
    biezacy->next = poczatek;
    poczatek = biezacy;

    biezacy = poczatek;
}

for(i=0;i<j;i++)
{
    while( biezacy )
    {
    printf( "Godzina %d:%d Dnia %d.%d.%d\nTemperatura: %f stopni C\nWilgotnosc: %f %%\nCisnienie: %f hPa\nPredkosc wiatru: %f km/h\n\n",
    biezacy->datag[i],
    biezacy->datam[i],
    biezacy->datad[i],
    biezacy->datami[i],
    biezacy->datar[i],
    biezacy->temp[i],
    biezacy->wilg[i],
    biezacy->cis[i],
    biezacy->wiatr[i] );
    biezacy = biezacy->next;
    }
}


    getch();
    return 0;
}
P-143639
« 1 »
  Strona 1 z 1