Ĺadny brzuch
W TEMACIE POWINIEN BYC JEZYK C :)
Probuje stworzyc program, ktory bedzie przyjmowal od uzytownika dane jesgo imie i nazwisko oparty na strukturach. Oto on:
#include <stdio.h> //int imie[i]; //int nazwisko[i]; struct kontakt { char *im=imie[i]; char *naz=nazwisko[i]; }; int main() { im=&osoba,imie[i]; naz=&osoba.nazwisko[i]; struct kontakt osoba; while(scanf("%s %s", osoba.imie[i], osoba.nazwisko[i] != EOF); printf("Imie i naziwsko : % s\n %s\n", osoba.imie[i], osoba.nazwisko[i]); osoba.im[i++]; osoba.naz[i++]; return 0; }
jednak cos tu chyba pokrecilem prosze jedynie o wskazowki co zle robie. probowalem rowniez zrobic sobie tak jakby szkiele nagi bez wskaznikow, ale chyba mi zmiennych nie widzi nie wiem co zle robie w obu programach, prosze o pomoc i wskazowki
ten 2
#include <stdio.h> struct ludzie { char imie[]; char nazwisko[]; }; int main() { for(int i=0;i!=EOF;i++) { struct ludzie osoba; printf("Podaj imie; "); scanf("%s", osoba.imie); printf("Podaj nazwisko: "); scanf("%s", osoba.nazwisko); } return 0; }
bledy z 2:
[programmer@localhost struct]$ gcc -Wall struct.c -o struct
struct.c:5: error: flexible array member not at end of struct
struct.c: In function 'main':
struct.c:11: error: 'for' loop initial declaration used outside C99 mode
struct.c: At top level:
struct.c:34: error: syntax error before 'return'
struct.c:35:2: warning: no newline at end of file
[programmer@localhost struct]$
Użytkownik ProgrammingMachine edytował ten post 24 październik 2007, 20:06
Jak piszesz w C++ to tu sie uzywa std::vector, std::string i std::cin/cout, poza tym w twoim programie nie ma zadnej logiki wiec proponuje zlapac jakis kurs.
nie, program ma byc w C i pisze go w C ;o
nie, program ma byc w C i pisze go w C ;o
... a teraz spojrz na nazwe tematu.
Policz sobie nawiasy w linii z petla while ;p
// edit, whops, tam jest wszystko zle :D skad wziales i? do czego chcesz to pierwsze cos przypisac :o omg, tak jak radzi Wolverine, wez jakis kurs przeczytaj
Użytkownik icek edytował ten post 24 październik 2007, 16:35
o kurcze (pomylka w temacie powinno byc C) :D
#include <stdio.h> struct kontakt { char *im=imie[i]; char *naz=nazwisko[i]; }; int main() { im=&osoba,imie[i]; naz=&osoba.nazwisko[i]; struct kontakt osoba; while(scanf("%s %s", osoba.imie[i], osoba.nazwisko[i] != EOF); printf("Imie i naziwsko : % s\n %s\n", osoba.imie[i], osoba.nazwisko[i]); osoba.im[i++]; osoba.naz[i++]; return 0; }
//chce, aby wskaznik im i naz wskazywal na typ char, od razu przyporzadowac do tego wskaznika zmienna tablicowa imie, w nawiasie beda sie znadowaly wartosci elementow tzn np dla
Adam Malkowski bedzie zapisany pod numerem 1 tablicy w strukturze i tak dalej..
petla while ma za zadanie wczytyanie danych dotad, az uzytkownik nie skonczy wpisywac danych
czytalem kurs, ale trudno to skleic,
na dole jest dziwny zapis:
osoba.im[i++]; osoba.naz[i++];
tu probowalem za kazdym wykonaniem petli jakby przechodzic juz na n-ty element tablicowy, aby imie nazwisko 1 zostawalo w 1 elemencie tablicy, przeskaiwalo na 2 i wpisywalo sie dane na 2 element i tak w kolko... ;/
wiem, ze to troche zagmatfane, ale prosze o wskazowki
Użytkownik ProgrammingMachine edytował ten post 24 październik 2007, 16:53
ta tablica chyba nie moze byc tak przypisana
Co to jest :blink: ? Toć ten kod nie ma sensu. Nie dość że klamry pogubiłeś, nie ustawiłeś wartości początkowych zmiennych (małe prawdopodobieństwo że 0 Ci się na starcie trafi...) to jeszcze masz nawiasy nie po domykane (może by tak spróbować skompilować kod przed wrzuceniem? :>)...
Przejrzyj to kilka razy i zrób sensownie.
Czy to zadanie na konkurs/zaliczenie etc? Bo "zwykłemu" użytkownikowi program nie skończy wczytywać danych (zakładając że będzie napisany tak żeby się skompilował :P)...
im=&osoba,imie[i]; naz=&osoba.nazwisko[i]; struct kontakt osoba;Kolejny dowód na to że to jest jedna wielka głupota a nie kod aplikacji. Oczekujesz poważnych porad? To dawaj porządne pytania/porządny kod, a nie takie zlepki nie wiadomo czego...
// I jeszcze jedno - po kiego grzyba Ci taka struktura? Przecież stosowanie takiej struktury (o ile jest możliwe - nie znam się na strukturach jeszcze), nie ma sensu. Co innego tablica struktur z dwoma polami (ma to jakiś sens patrząc na zastosowanie) a co innego pojedyńcza struktura z 2 tablicami dynamicznymi w środku.
Użytkownik Ali240 edytował ten post 24 październik 2007, 20:52
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Probuje stworzyc program, ktory bedzie przyjmowal od uzytownika dane jesgo imie i nazwisko oparty na strukturach. Oto on:
#include <stdio.h> //int imie[i]; //int nazwisko[i]; struct kontakt { char *im=imie[i]; char *naz=nazwisko[i]; }; int main() { im=&osoba,imie[i]; naz=&osoba.nazwisko[i]; struct kontakt osoba; while(scanf("%s %s", osoba.imie[i], osoba.nazwisko[i] != EOF); printf("Imie i naziwsko : % s\n %s\n", osoba.imie[i], osoba.nazwisko[i]); osoba.im[i++]; osoba.naz[i++]; return 0; }
jednak cos tu chyba pokrecilem prosze jedynie o wskazowki co zle robie. probowalem rowniez zrobic sobie tak jakby szkiele nagi bez wskaznikow, ale chyba mi zmiennych nie widzi nie wiem co zle robie w obu programach, prosze o pomoc i wskazowki
ten 2
#include <stdio.h> struct ludzie { char imie[]; char nazwisko[]; }; int main() { for(int i=0;i!=EOF;i++) { struct ludzie osoba; printf("Podaj imie; "); scanf("%s", osoba.imie); printf("Podaj nazwisko: "); scanf("%s", osoba.nazwisko); } return 0; }
bledy z 2:
[programmer@localhost struct]$ gcc -Wall struct.c -o struct
struct.c:5: error: flexible array member not at end of struct
struct.c: In function 'main':
struct.c:11: error: 'for' loop initial declaration used outside C99 mode
struct.c: At top level:
struct.c:34: error: syntax error before 'return'
struct.c:35:2: warning: no newline at end of file
[programmer@localhost struct]$
Użytkownik ProgrammingMachine edytował ten post 24 październik 2007, 20:06
Jak piszesz w C++ to tu sie uzywa std::vector, std::string i std::cin/cout, poza tym w twoim programie nie ma zadnej logiki wiec proponuje zlapac jakis kurs.
nie, program ma byc w C i pisze go w C ;o
nie, program ma byc w C i pisze go w C ;o
... a teraz spojrz na nazwe tematu.
Policz sobie nawiasy w linii z petla while ;p
// edit, whops, tam jest wszystko zle :D skad wziales i? do czego chcesz to pierwsze cos przypisac :o omg, tak jak radzi Wolverine, wez jakis kurs przeczytaj
Użytkownik icek edytował ten post 24 październik 2007, 16:35
o kurcze (pomylka w temacie powinno byc C) :D
#include <stdio.h> struct kontakt { char *im=imie[i]; char *naz=nazwisko[i]; }; int main() { im=&osoba,imie[i]; naz=&osoba.nazwisko[i]; struct kontakt osoba; while(scanf("%s %s", osoba.imie[i], osoba.nazwisko[i] != EOF); printf("Imie i naziwsko : % s\n %s\n", osoba.imie[i], osoba.nazwisko[i]); osoba.im[i++]; osoba.naz[i++]; return 0; }
//chce, aby wskaznik im i naz wskazywal na typ char, od razu przyporzadowac do tego wskaznika zmienna tablicowa imie, w nawiasie beda sie znadowaly wartosci elementow tzn np dla
Adam Malkowski bedzie zapisany pod numerem 1 tablicy w strukturze i tak dalej..
petla while ma za zadanie wczytyanie danych dotad, az uzytkownik nie skonczy wpisywac danych
czytalem kurs, ale trudno to skleic,
na dole jest dziwny zapis:
osoba.im[i++]; osoba.naz[i++];
tu probowalem za kazdym wykonaniem petli jakby przechodzic juz na n-ty element tablicowy, aby imie nazwisko 1 zostawalo w 1 elemencie tablicy, przeskaiwalo na 2 i wpisywalo sie dane na 2 element i tak w kolko... ;/
wiem, ze to troche zagmatfane, ale prosze o wskazowki
Użytkownik ProgrammingMachine edytował ten post 24 październik 2007, 16:53
ta tablica chyba nie moze byc tak przypisana
Co to jest :blink: ? Toć ten kod nie ma sensu. Nie dość że klamry pogubiłeś, nie ustawiłeś wartości początkowych zmiennych (małe prawdopodobieństwo że 0 Ci się na starcie trafi...) to jeszcze masz nawiasy nie po domykane (może by tak spróbować skompilować kod przed wrzuceniem? :>)...
Przejrzyj to kilka razy i zrób sensownie.
Czy to zadanie na konkurs/zaliczenie etc? Bo "zwykłemu" użytkownikowi program nie skończy wczytywać danych (zakładając że będzie napisany tak żeby się skompilował :P)...
im=&osoba,imie[i]; naz=&osoba.nazwisko[i]; struct kontakt osoba;Kolejny dowód na to że to jest jedna wielka głupota a nie kod aplikacji. Oczekujesz poważnych porad? To dawaj porządne pytania/porządny kod, a nie takie zlepki nie wiadomo czego...
// I jeszcze jedno - po kiego grzyba Ci taka struktura? Przecież stosowanie takiej struktury (o ile jest możliwe - nie znam się na strukturach jeszcze), nie ma sensu. Co innego tablica struktur z dwoma polami (ma to jakiś sens patrząc na zastosowanie) a co innego pojedyńcza struktura z 2 tablicami dynamicznymi w środku.
Użytkownik Ali240 edytował ten post 24 październik 2007, 20:52