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 #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 ] |
|
mateczek |
» 2016-01-16 22:29:38 lista może coś w tym stylu !!! #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(); } |
|
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 |
|
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; }
|
|
« 1 » |