• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Struktura i funkcja w C

Cloud VPS
0 głosów
1,076 wizyt
pytanie zadane 17 stycznia 2019 w C i C++ przez Kaper99 Użytkownik (660 p.)

Witam! Proszę o pomoc w wytłumaczeniu polecenia, bo kompletnie nie rozumiem.
Wygląda ono tak  : 

Strukture zdefiniowałem bez problemu natomiast 
Moje pytanie brzmi, o co chodzi z tym "struct daneos wczytaj(); " Mam napisać funkcję typu " struct daneos"  do wczytywania danych do struktury ?  Mógłby ktoś naprowadzić jak to ma wyglądać, ponieważ kompletnie nie wiem jak się za to zabrać.  Z góry dziękuję.

1 odpowiedź

0 głosów
odpowiedź 17 stycznia 2019 przez criss Mędrzec (172,570 p.)
wybrane 20 stycznia 2019 przez Kaper99
 
Najlepsza

Masz stworzyć w funkcji wczytaj() lokalny obiekt takiej struktury i go wypełnić (pewnie chodzi o scanf) a następnie zwrócić ten obiekt. Coś w tym stylu:

struct daneos wczytaj()
{
   struct daneos d;
   // wypelnianie
   return d;
}

W przypadku wczytaj2 to samo, ale obiekt do wypełnienia masz podany z zewnątrz. Zauważ, że przy implementacji wczytaj() możesz wykorzystać wczytaj2(), żeby nie pisać tego samego kodu wypełniania wielokrotnie.

komentarz 17 stycznia 2019 przez Kaper99 Użytkownik (660 p.)

Okej, zrobiłem to w ten sposób. Pierwsza część zadania chyba jest dobrze ( ale pozostawiam do oceny )

	struct daneos
	{
		char imie[20], nazwisko[20];
		int wiek;
	};

struct daneos wczytaj();
void wyswietl(struct daneos student);

void wczytaj2(struct daneos *wsk);
void wyswietl2(struct daneos *wsk);
int main(int argc, char *argv[]) {

	puts("Bez wskaznikow");
	struct daneos student;
	student=wczytaj();
	wyswietl(student);
	
	puts("Ze wskaznikiem");
	/*student=wczytaj2()
	struct daneos *wsk=&student;
	wyswietl2( struct daneos student );       // Tutaj mam błąd, nie wiem w jaki sposób zabrać się za 
	                                           wczytywanie i wyswietlanie za pomocą wskaźników.*/

	
	return 0;
}
 
 
struct daneos wczytaj()
{	struct daneos student1;
	
	printf("Podaj imie\n");
	scanf("%s",student1.imie);
	printf("Podaj nazwisko\n");
	scanf("%s",student1.nazwisko);
	printf("Podaj wiek\n");
	scanf("%d",&student1.wiek);
	return student1;
	
}

void wyswietl(struct daneos student)
{
	printf(" %s %s %d\n",student.imie,student.nazwisko,student.wiek);
}

void wczytaj2(struct daneos *wsk)
{
	
}

void wyswietl2(struct daneos *wsk)
{
	printf("%s %s %d",wsk->imie,wsk->nazwisko,wsk->wiek);
}

Natomiast mam problem z drugą częścią zadania - użyciem wskaźników do tej struktury, próbowałem to zrobić tak jak jest w kodzie, ale kompletnie mi to nie wychodzi. 
Funkcja wczytaj2 oraz wyswietl2 chce ode mnie argument, ale nie przyjmuje ani *wsk ani student. 
Co należy podać tym funkcjom oraz jak powinno wyglądać ich ciało ? 

komentarz 17 stycznia 2019 przez criss Mędrzec (172,570 p.)

Moim zdaniem okej. Co do pytania:

struct student s;
wczytaj2(&s);
wyswietl2(&s);
komentarz 20 stycznia 2019 przez Kaper99 Użytkownik (660 p.)
Dziękuję bardzo !

Podobne pytania

0 głosów
2 odpowiedzi 827 wizyt
pytanie zadane 30 marca 2017 w C i C++ przez Programeł Gaduła (3,500 p.)
0 głosów
1 odpowiedź 1,980 wizyt
pytanie zadane 9 czerwca 2018 w C i C++ przez WhizzKid Początkujący (400 p.)
0 głosów
1 odpowiedź 549 wizyt
pytanie zadane 2 lipca 2017 w C i C++ przez kakaPL Nowicjusz (160 p.)

93,487 zapytań

142,420 odpowiedzi

322,772 komentarzy

62,903 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...