Skocz do zawartości
Pecetowicz Forum komputerowe

Dlaczego po zmianie valve lub weight prawidłowo wyświetla się profit?


Rekomendowane odpowiedzi

Gość veno

Cześć,

Czy moglibyście mi powiedzieć, dlaczego po zmianie zmiennej value lub weight prawidłowo wyświetla się profit? Jest to spowodowane przewagą liczb całkowitych?

#define N 5
struct item{
    int value;
    int weight;
    float profit;
};

void sort(item array[]){
    for (int i = 0; i < N; ++i) {
        for (int j = 1; j < N-i; ++j) {
            if(array[j].profit < array[j-1].profit){
                swap(array[j], array[j-1]);
            }
        }
    }
}

int main() {
    item array[N]={ {12,4}, {15,2}, {4,1}, {43,5}, {100,8} };

    for (int i = 0; i < N; ++i) { // sprawdź czy przedmiot opłaca się ukraść
        array[i].profit=array[i].value/array[i].weight;
    } sort(array); //sortowanie bąbelkowe

    for (int j = 0; j < N; ++j) {
        cout << "wartość: " << array[j].value << " waga: " << array[j].weight << " opłacalność: " << array[j].profit << endl;
    }

    return 0;
}

Wynik:

Ustawienia struktury:
	int value;
    int weight;
    float profit
wartość: 12 waga: 4 opłacalność: 3
wartość: 4 waga: 1 opłacalność: 4
wartość: 15 waga: 2 opłacalność: 7
wartość: 43 waga: 5 opłacalność: 8
wartość: 100 waga: 8 opłacalność: 12

Ustawienia struktury:
	int value;
    float weight;
    float profit
wartość: 12 waga: 4 opłacalność: 3
wartość: 4 waga: 1 opłacalność: 4
wartość: 15 waga: 2 opłacalność: 7.5
wartość: 43 waga: 5 opłacalność: 8.6
wartość: 100 waga: 8 opłacalność: 12.5
Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • Ekspert

Nie wiem czy dobrze Cię zrozumiałem,ale wartość i wagę masz w intcie i ucina liczbę więc wiadomo że profit też będzie nijako liczbę całkowitą.

Jak zmienisz na floata i wpiszesz np 4.0 1.0 to wynik też będzie float chyba oczywiste.

  • Lubię to! 2
Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość veno

@FrageN dzięki za odpowiedź. Myślałem, że na strukturze inaczej będzie to wyglądało. Temat do zamknięcia.

Edytowane przez veno
Odnośnik do odpowiedzi
Udostępnij na innych stronach

Problem wciąż nierozwiązany? Dodaj swoją odpowiedź

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto. Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...