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

Struktury przekazywane jako parametr funkcji

VPS Starter Arubacloud
0 głosów
2,353 wizyt
pytanie zadane 14 stycznia 2017 w C i C++ przez Kamyyylo Początkujący (460 p.)

Mam do zrobienia takie zadanie :

Napisz funkcje pozwalające wczytywać i wyświetlać zawartość bazy.
Uwaga: w/w tablice lub struktury powinny być przekazywane jako parametry funkcji !

Czy dobrze je zrozumiałem ? 

#include<iostream>
using namespace std;
struct struktura
{
	int liczba;
	char slowo[10];
};
struktura tab[5];
void wczytywanie (struct struktura*liczba, struct struktura*slowo)
{
	cout << "Podaj liczbe i slowo: " << endl;
	for (int i = 0; i < 5; i++)
	{
      cout << "Liczba: "; cin>>tab[i].liczba;
	  cout << "Slowo: "; cin >> tab[i].slowo;
	}

}
void wyswietlanie(struct struktura*liczba, struct struktura*slowo)
{
	for (int i = 0; i < 5; i++)
	{
		cout << tab[i].liczba << endl;
		cout << tab[i].slowo << endl;
}
}
int main ()
{
	wczytywanie();
	wyswietlanie();
	system("pause");
	return 0;
}

 

1 odpowiedź

0 głosów
odpowiedź 14 stycznia 2017 przez niezalogowany
edycja 30 sierpnia 2017
 
Najlepsza

Ja bym zrobił to w taki sposób:

#include<iostream>
using namespace std;

struct struktura
{
    int liczba;
    char slowo[10];
};

void wczytywanie(struktura* tab, int k)
{
    cout << "Podaj liczbe i slowo: " << endl;
    for (int i = 0; i < k; i++)
    {
      cout << "Liczba: "; cin>>tab[i].liczba;
      cout << "Slowo: "; cin >> tab[i].slowo;
    }
}

void wyswietlanie(struktura* tab, int k)
{
    for (int i = 0; i < k; i++)
    {
        cout << tab[i].liczba << endl;
        cout << tab[i].slowo << endl;
}
}
int main ()
{
    const int ile = 3;
    struktura tab[ile];

    wczytywanie(tab, ile);
    wyswietlanie(tab, ile);

    return 0;
}
komentarz 14 stycznia 2017 przez niezalogowany
Ogólnie dobrze zrobiłeś tylko funkcje powinny być bardziej ogólnego przeznaczenia. Nie Poza tym nie trzeba definiować w funkcjach, że przyjmują struct struktury - wystarczy nazwa struktury czyli struktura :D
komentarz 14 stycznia 2017 przez Kamyyylo Początkujący (460 p.)
Co to znaczy ze powinny być bardziej ogólnego przeznaczenia ?
komentarz 14 stycznia 2017 przez niezalogowany

Chodziło mi o to, by wywołaniom funkcji w mainie podawać tablicę struktur i jej rozmiar. Możesz mieć w programie różne tablice struktur, albo zrobić coś dla innego rozmiaru tablicy struktur... Wtedy łatwiej zrobić w mainie tak:

int main ()
{
    /***/
    wczytywanie(tab, 3);
    wczytywanie(tab4, 24);
    wyswietlanie(tab, 3);
    wyswietlanie(tab4, 24);
 
    return 0;
}

I będzie to działać prosto i ładnie. Ty użyłeś zmiennych globalnych i w tym momencie musiałbyś trochę pozmieniać... Ale skoro już wiesz, że nie będziesz swojego programu budował bardziej złożonego to możesz robić swoim sposobem i też będzie git:) 

Podobne pytania

0 głosów
1 odpowiedź 554 wizyt
0 głosów
1 odpowiedź 938 wizyt
0 głosów
1 odpowiedź 1,337 wizyt
pytanie zadane 22 kwietnia 2017 w C i C++ przez muchomor Nowicjusz (210 p.)

92,851 zapytań

141,792 odpowiedzi

320,882 komentarzy

62,183 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.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...