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

Przekazywanie adresu struktury do funckcji.

0 głosów
73 wizyt
pytanie zadane 29 stycznia w C i C++ przez Michał_Warmuz Mądrala (5,690 p.)
edycja 29 stycznia przez Michał_Warmuz
struct pudlo {
    char producent[40];
    float wysokosc;
    float szerokosc;
    float dlugosc;
    float objetosc;
};

b) Napisz funkcje ktorej przekazany zostanie adres struktury pudlo i ktora ustawi wartosc pola objetosc na iloczyn trzech wymiarow.

cześć. Mam do was pytanie czy dorze zrozumiałem to zadanie i czy dobrze je wykonałem. Bardzo dziekuje za pomoc :)

 

Chodzi o tą linijke:

pudlo_1.objetosc = trzy_d(&pudlo_1);

#include <iostream>

using namespace std;

struct pudlo {
    char producent[40];
    float wysokosc;
    float szerokosc;
    float dlugosc;
    float objetosc;
};

pudlo pokaz(pudlo pudlo_1) {

    cout<<pudlo_1.producent<<endl;
    cout<<pudlo_1.wysokosc<<endl;
    cout<<pudlo_1.szerokosc<<endl;
    cout<<pudlo_1.dlugosc<<endl;
    cout<<pudlo_1.objetosc<<endl;

}


float trzy_d(pudlo *pudlo_1) {

    return pudlo_1->objetosc = pudlo_1->wysokosc * pudlo_1->szerokosc * pudlo_1->dlugosc;
}


int main()
{
    pudlo pudlo_1 = {"Sony", 2.3,2.4,40.0,22.22};
    pudlo_1.objetosc = trzy_d(&pudlo_1);
    pokaz(pudlo_1);

    return 0;
}

 

2 odpowiedzi

+2 głosów
odpowiedź 30 stycznia przez Arkadiusz Sikorski Pasjonat (19,480 p.)
wybrane 30 stycznia przez Michał_Warmuz
 
Najlepsza

Funkcja trzy_d nie musi nic zwracać (polecenie o tym nie mówi), więc wystarczy zmienić typ funkcji na void trzy_d(pudlo*) i usunąć return z jej definicji. A wtedy już w mainie nie trzeba przypisywać wartości zwracanej - wystarczy zapis, który jest po prawej stronie znaku równości.

void trzy_d(pudlo *pudlo_1) {
 
    pudlo_1->objetosc = pudlo_1->wysokosc * pudlo_1->szerokosc * pudlo_1->dlugosc;
}
int main()
{
    pudlo pudlo_1 = {"Sony", 2.3,2.4,40.0,22.22};
    trzy_d(&pudlo_1);
    pokaz(pudlo_1);
 
    return 0;
}

 

0 głosów
odpowiedź 30 stycznia przez j23 VIP (105,900 p.)

Wystarczy samo trzy_d(&pudlo_1);

Podobne pytania

0 głosów
1 odpowiedź 43 wizyt
pytanie zadane 13 września 2016 w C i C++ przez Kasztan Dyskutant (8,100 p.)
0 głosów
1 odpowiedź 137 wizyt
pytanie zadane 22 lutego 2016 w C i C++ przez Mikruuus Początkujący (330 p.)
0 głosów
1 odpowiedź 157 wizyt
Porady nie od parady
Pytania na temat serwisu SPOJ należy zadawać z odpowiednią kategorią dotyczącą tej strony.SPOJ

65,753 zapytań

112,388 odpowiedzi

237,308 komentarzy

46,699 pasjonatów

Przeglądających: 210
Pasjonatów: 14 Gości: 196

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...