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

question-closed C++ prośba o pomoc

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
766 wizyt
pytanie zadane 8 stycznia 2019 w C i C++ przez zielony_informatyk Nowicjusz (240 p.)
zamknięte 8 stycznia 2019 przez zielony_informatyk

Witam, uczę się jako technik informatyk i dostaliśmy ostatnio do zrobienia zadanie z c++ żeby napisać funkcję która policzy nam środek pewnego odcinka którego współrzędne początku i końca podajemy z klawiatury. 

Program napisałem ale mam błędne dane kiedy cała zawartość znajduje się w funkcji main() wszystko jest poprawne natomiast kiedy zawartość wstawię do funkcji wychodzą dane z miliardem zer po przecinku.

 

oto kod: 

#include <iostream>

using namespace std;

float srodek(float xpocz, float xkon, float ypocz,float ykon, float xsrodka, float ysrodka)
{
     xsrodka=(xpocz+xkon)/2;
     ysrodka=(ypocz+ykon)/2;


    return 0;
}

int main()
{
    float xpocz, ypocz, xkon, ykon , xsrodka, ysrodka;
    //wczytanie danych
    cout << "Podaj wspolrzedne poczatku : \n";
    cout << "x = ";
    cin >> xpocz;
    cout << "y = ";
    cin >> ypocz;
    cout << "Podaj wspolrzedne konca : \n";
    cout << "x = ";
    cin >> xkon;
    cout << "y = ";
    cin >> ykon;
    //wywołanie funkcji
    float srodek();
    cout << "\nx srodka jest rowne : " <<xsrodka;
    cout << "\ny srodka jest rowne : " <<ysrodka;

    return 0;
}


 

 

komentarz zamknięcia: Problem został rozwiązany

2 odpowiedzi

+1 głos
odpowiedź 8 stycznia 2019 przez DragonCoder Nałogowiec (36,500 p.)
wybrane 8 stycznia 2019 przez zielony_informatyk
 
Najlepsza

Zapomniales dac argumenty do funkcji

 

#include <iostream>

float srodek(float xpocz, float xkon, float ypocz,float ykon)
{
float xsrodka = 0;
float ysrodka = 0;
     xsrodka=(xpocz+xkon)/2;
     ysrodka=(ypocz+ykon)/2;

    std::cout << "\nx srodka jest rowne : " <<xsrodka;
    std::cout << "\ny srodka jest rowne : " <<ysrodka;
}

int main()
{
    float xpocz = 0;
    float xkon = 0;
    
    float ypocz = 0;
    float ykon = 0;
    
    //wczytanie danych
    std::cout << "Podaj wspolrzedne poczatku : \n";
    std::cout << "x = ";
    std::cin >> xpocz;
    std::cout << "y = ";
    std::cin >> ypocz;
    std::cout << "Podaj wspolrzedne konca : \n";
    std::cout << "x = ";
    std::cin >> xkon;
    std::cout << "y = ";
    std::cin >> ykon;
    //wywołanie funkcji
    srodek(xpocz, xkon, ypocz, ykon);

    return 0;
}

 

komentarz 8 stycznia 2019 przez niezalogowany
Poza tym chyba nie przypisze ta funkcja wartości do tych obu zmiennych.
komentarz 8 stycznia 2019 przez DragonCoder Nałogowiec (36,500 p.)
No dlatego rozwiazalem to tak, zamiast rozbijac na 2 funkcje. No mozna zwrocic kilka wartosci z funkcji, przy uzyciu tuple
komentarz 8 stycznia 2019 przez niezalogowany
A jakby przesłać oba środki przez referencje?
komentarz 8 stycznia 2019 przez DragonCoder Nałogowiec (36,500 p.)
edycja 8 stycznia 2019 przez DragonCoder
#include <iostream>


float srodek(float xpocz, float xkon, float ypocz,float ykon, float & xsrodka, float & ysrodka)
{

     xsrodka=(xpocz+xkon)/2;
     ysrodka=(ypocz+ykon)/2;
}

int main()
{
    float xpocz = 0;
    float xkon = 0;

    float ypocz = 0;
    float ykon = 0;

    float xsrodka = 0;
    float ysrodka = 0;

    //wczytanie danych
    std::cout << "Podaj wspolrzedne poczatku : \n";
    std::cout << "x = ";
    std::cin >> xpocz;
    std::cout << "y = ";
    std::cin >> ypocz;
    std::cout << "Podaj wspolrzedne konca : \n";
    std::cout << "x = ";
    std::cin >> xkon;
    std::cout << "y = ";
    std::cin >> ykon;
    //wywołanie funkcji
    srodek(xpocz, xkon, ypocz, ykon, xsrodka, ysrodka);

    std::cout << "\nx srodka jest rowne : " <<xsrodka;
    std::cout << "\ny srodka jest rowne : " <<ysrodka;

    return 0;
}

Tez zwroci poprawne wartosci, bo pracujemy na orginalach zmiennych, a nie ich kopi. Wiec przekazjac zmienna do funkcji przez referencje zmienimy jej wartosci, a nie tylko wartosc jej kopii

0 głosów
odpowiedź 8 stycznia 2019 przez zielony_informatyk Nowicjusz (240 p.)
Dzięki Ci wielkie działa, już widzę gdzie robiłem błędy i czego nie napisałem.

Pozdrawiam.

Podobne pytania

–1 głos
0 odpowiedzi 154 wizyt
pytanie zadane 8 stycznia 2019 w C i C++ przez Nostradamus Nowicjusz (120 p.)
0 głosów
1 odpowiedź 558 wizyt
pytanie zadane 27 stycznia 2017 w C i C++ przez vega Użytkownik (510 p.)
0 głosów
1 odpowiedź 282 wizyt

93,433 zapytań

142,428 odpowiedzi

322,661 komentarzy

62,796 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

...