Zarządzanie i Inżynieria Produkcji, Wydział Informatyki, Politechnika Szczecińska
#include <stdio.h>
#include <stdlib.h>
struct node
{
int age;
float weight;
char name[16];
double salary;
struct node *next;
};
int main()
{
int i;
struct node *x,*tmp;
x=(struct node*)malloc(sizeof(struct node));
tmp=x;
for(i=1;i<=10;i++)
{
tmp->next=(struct node*)malloc(sizeof(struct node));
tmp=tmp->next;
tmp->age=i;
}
tmp->next=0;
tmp=x;
for(i=1;i<=10;i++)
{
printf("%d\n",tmp->age);
tmp=tmp->next;
if(tmp->next==0){break;}
}
}
chyba sie przyda ?
Offline
ZIP 10
kochani...
Offline
ZIP 10
soli a co on robi?
Offline
ciezko wyjasnic ;p chodzi o to ze tworzysz 10 strukture danych gdzie np pierwsza po wprowadzeniu danych sama przechodzi do nastepnej gdzie tez wypelnia sie dane a ta nastepna przechodzi do jeszcze nastepnej itd az dojdzie do koncowej i wtedy przerwie dzialanie petli i wyswietli zawartosc kazdej struktury na monitorze ;p
Offline
ZIP 10
chcialem sie upewnic czy to to samo co my mamy zrobic
Offline
ZIP 10
A powiedzcie mi szybko jak on chcial zeby mu ten program przynieść? Jak wysle sobie na maila skompilowany programem to bedzie ok?
Offline
bedzie ok;p
ogolnie nam powiedzial tyle co " jak juz przepiszecie od kolegi program to chcoaiz sie nauczcie co jest co i jak dziala" ;p wiec mozesz se na maila wrzucic czy gdzies tam kolwiek ;>
Offline
ZIP 10
hehe dobra przez zdalny pulpit juz sobie wrzucilam na konto
Offline
Tak w ogóle to błąd jest...
Zamiast tmp=x; powinno być tmp=x->next; no chyba że ma wyświetlać na początku jakieś bzdury z pierwszej struktury, gdzie do age'a nic się nie przypisuje i ma on tym samym jakąś losową wartość, która jest w tej komórce pamięci.
No i if(tmp->next==0){break;} powinno być przed tmp=tmp->next;
A tak w ogóle to to if(tmp->next==0){break;} jest zupełnie niepotrzebne, bo pętla i tak tylko 10 razy przeleci.
Poza tym good job Soli. Jak sam pisałeś to szacuneczek
Offline
do age przypisuje sie kolejno 1,2,3 itd ( tmp->age=i; ), a wyswietla to dopiero w drugim forze, a co to do tego if'a to tez tak uwazalem ale gosc sie uparl zeby byl ;p, wazne ze program w takiej postaci dziala i robi to co ma robic ;p
Offline
a mi nie działa...
w ogóle dlaczego jest na początku "};" po co ten średnik? Pierwszy raz się spotkałam z nim w tym miejscu i mam wrażenie, że jest tam przez przypadek. (?)
Offline
tylko, że po kompilacji nie działa. znaczy się jak jest średnik to nie ma błędów ale program nie działa- pojawia się i znika, a jak nie ma średnika to jest kilka błędów.
Offline
Nie jest przez przypadek. Przy definicji struktury zawsze po klamerce jest średnik i nic na to nie poradzisz
Soli napisał:
do age przypisuje sie kolejno 1,2,3 itd ( tmp->age=i; ), a wyswietla to dopiero w drugim forze,
No tak, tylko że po dynamicznej alokacji pierwszej struktury tworzysz kolejne 10 (czyli razem masz 11) i do nich przypisujesz kolejno 1, 2, 3 itd. a z tą pierwszą nic nie robisz. Za to wyświetlanie zaczynasz od tej pierwszej, z którą nic nie zrobiłeś i dlatego wychodzi:
przypadkowa_wartość 1 2 3 4 5 6 7 8 9
No chyba że ma tak być
Soli napisał:
a co to do tego if'a to tez tak uwazalem ale gosc sie uparl zeby byl ;p, wazne ze program w takiej postaci dziala i robi to co ma robic ;p
A no to spoko. Widzę że ten koleś ma jeszcze mniejszą wiedzę od umiejętności nauczania. I to mówię ja - chujowy programista!
EDIT:
Mu, nie słuchaj się tej postu wyżej. Nic dziwnego że są błędy, bo ten średnik po prostu MUSI być.
A program DZIAŁA, tylko że nie widzisz co on wyświetla, bo to okienko dialogowe znika, zanim zdążysz je zobaczyć. Daj przed ostatnią klamerką getch(); to okienko nie zniknie, dopóki nie wciśniesz jakiegoś klawisza.
W ogóle to dałbym jeszcze na końcu return 0; albo zmienił int main() na void main(), ale to już czyste czepialstwo, koleś i tak pewnie tego nie doceni bo sam nie wie o co w tym chodzi.
A tak w ogóle to chuj mnie to wszystko obchodzi, bo i tak Liverpool przegrał... Jebane mediolańskie fartuchy...
Ostatnio edytowany przez Mlody (2007-05-23 23:31:27)
Offline
Ja tutaj koleżance Mu próbuję pomóc więc nie przeszkadzaj z łaski swojej skoro nic konkretnego nie masz do powiedzenia. Przeszkadzasz tylko. A daruję sobie jak już jej program zacznie działać.
I nie denerwuj mnie jak pijany jestem i moja drużyna przegrała w finale Ligi Mistrzów.
EDIT:
Mu, nie jestem pewien czy jakiegoś inkluda nie trzeba dodać przy okazji tego getch(); więc daj znać czy się udało. Jeśli nie to spróbuj na początku #include <conio.h>
Ja już nie pamiętam które biblioteki za co odpowiadały.
Ostatnio edytowany przez Mlody (2007-05-24 00:05:58)
Offline
Mlody napisał:
EDIT:
Mu, nie słuchaj się tej postu wyżej. Nic dziwnego że są błędy, bo ten średnik po prostu MUSI być.
A program DZIAŁA, tylko że nie widzisz co on wyświetla, bo to okienko dialogowe znika, zanim zdążysz je zobaczyć. Daj przed ostatnią klamerką getch(); to okienko nie zniknie, dopóki nie wciśniesz jakiegoś klawisza.
W ogóle to dałbym jeszcze na końcu return 0; albo zmienił int main() na void main(), ale to już czyste czepialstwo, koleś i tak pewnie tego nie doceni bo sam nie wie o co w tym chodzi.
A tak w ogóle to chuj mnie to wszystko obchodzi, bo i tak Liverpool przegrał... Jebane mediolańskie fartuchy...
dziękuję za wyczerpującą odpowiedź
Mlody napisał:
Ja tutaj koleżance Mu próbuję pomóc więc nie przeszkadzaj z łaski swojej skoro nic konkretnego nie masz do powiedzenia. Przeszkadzasz tylko. A daruję sobie jak już jej program zacznie działać.
I nie denerwuj mnie jak pijany jestem i moja drużyna przegrała w finale Ligi Mistrzów.
EDIT:
Mu, nie jestem pewien czy jakiegoś inkluda nie trzeba dodać przy okazji tego getch(); więc daj znać czy się udało. Jeśli nie to spróbuj na początku #include <conio.h>
Ja już nie pamiętam które biblioteki za co odpowiadały.
Nie wiedziałam o tym średniku i dzięki za wyjaśnienie. Okienko faktycznie wyświetlało się i od razu znikało, więc już jest ok dziękuję jeszcze raz
Ostatnio edytowany przez moo-moo (2007-05-24 00:22:47)
Offline
ZIP 10
tu jest wersja dla zip10 (wedlug danych z naszych zajec bez zbednych dodatkow i na 100 dzialajaca)
#include<stdlib.h>
#include<stdio.h>
struct nazwa{
int klucz;
char nazwisko[16];
struct nazwa *next;
};
int main(){
int i;
struct nazwa *x,*tmp;
x=(struct nazwa*)malloc(sizeof(struct nazwa));
tmp=x;
for(i=1;i<=10;i++){
tmp->next=(struct nazwa*)malloc(sizeof(struct nazwa));
tmp=tmp->next;
tmp->klucz=i;
}
tmp->next=0;
tmp=x->next;
printf("\n tadam (werble)!!!:\n");
for(i=1;i<=10;i++){
printf(" %d\n",tmp->klucz);
tmp=tmp->next;
}
printf("\n");
}
Offline
A propo C. Sama w liceum miałam ten język, ale mój informatyk nie był zbyt hojny jeśli chodzi o przekazywanie wiedzy i raczej nie chciało mu się niczego tłumaczyć. Zajęcia polegały na podaniu treści zadania i 'robieniu' programu. Jak nie umiesz to pała. Czasami podał jakieś wskazówki, ale generalnie nic szczególnego. Jedyne co zrozumiałam to jakieś elementy z grafiką i byłam dumna, że sama napisałam program, w którym koło poruszało się od jednej strony monitora do drugiej. Cieszyłam się jak się skończyło programowanie o ile można to tak nazwać.
Ale do rzeczy. Tu też raczej nie podają nam wystarczającą liczbę wskazówek, zresztą nie ma na to czasu, bo laboratoria są tylko jedne. Czy zna ktoś z Was może jakąś książkę, którą mógłby mi polecić jeśli sama chcę trochę o tym poczytać? Jak na razie to książki, na które natrafiłam miały zupełnie inne funkcjie niż te których my używamy na zajęciach a skoro słabo znam ten język to ciężko skojarzyć co jest co. Będę wdzięczna za taką informację i na pewno nie tylko ja
Może jakiś kurs internetowy, coś w rodzaju samouczka chociaż i tak najlepiej książka
Offline
moo-moo samouczek w formie dosc przejrzystego kursu:
http://pl.wikibooks.org/wiki/Programowanie:C
Offline
Mu, nie wiem jak z czystym ANSI C (ja się go uczyłem z jakiejś ksiażki "Język C w 24h" czy coś takiego), ale jak chcesz się nauczyć C++ to tylko i wyłącznie "Symfonia C++ Jerzego Grębosza. Koleś pisze naprawdę przystępnym językiem, nie żadne akademickie pierdolenie. Fajnie się czyta i wszystko można zrozumieć. Jedyny minus - 3 tomy Ale naprawdę polecam, mimo że nie lubię czytać książek.
Wersja elektroniczna: http://www.sendspace.com/file/a4lajj (trzeba zainstalować ten plugin i można to otwierać, w Operze na bank, nie wiem jak w innych browserach)
Pap, Twój program na oko wygląda ok, ale znalazłem zbędny dodatek tmp->next=0;
No chyba że to była część danych z Waszego zadania. Ale tak w ogóle to wskaźnikom się przypisuje NULL, a nie 0, ale to już kosmetyka.
Offline