Bład przy dzieleniu.

0

Czy może mi ktoś sprawdzić kod źródłowy programu? Nie działa mi dzielenie. nie ważne jakie są wartości zawsze pokazuje 0.

#include <stdio.h>
#include <stdlib.h>

int main()
{
int x, y, z;
float wynik;

printf("wprowadz wartosc x: \n");
scanf("%d", &x);
printf("wprowadz wartosc y: \n");
scanf("%d", &y);
printf("wprowadz wartosc z: \n");
scanf("%d", &z);

if(x > z, y > z)
{
    wynik = x * y * z;
    printf("wynik mnozenia xyz = %f", wynik);
}

  if(z > y || x > y)
    {
        wynik = y/z;
        printf("Wynik dzielenia y / z wynosi: %f", wynik);

    }


     if(z > x && y != 5 || y > z && x != 0)
            {
                wynik = x + y + z;
                printf("wynik dodawania a+b+c= %f", wynik);
            }




return 0;

}

4
wynik = y/(float)z;

inaczej dostajesz dzielenie na całość.

4
if(x > z, y > z)

Co tutaj według Ciebie się dzieje?

Przy okazji: Dlaczego nikt nie odpowiada w moim wątku?

0

_13th_Dragon:

a zawsze muszę robić tak przy dzieleniu? "wynik = y/(float)z;"??

czyli w nawiasie wprowadzać zawsze typy danych?

kq:

wstawiłem pierwszą wersję programu, tam o co pytasz jest warunek if(x > z && y > z)

1

Wypada wstawić tę samą wersję, na której pracujesz, inaczej porady nie będą trafne.

2
Maxick napisał(a):

... a zawsze muszę robić tak przy dzieleniu? "wynik = y/(float)z;"??

Nie, tylko wtedy gdy oba operandy (dzielnik oraz dzielna) są typu całkowitego zaś wynik potrzebujesz typu zmiennoprzecinkowego.
W przypadku obu całkowitych wystarczy jeden z nich jawnie skonwertować na typ zmiennoprzecinkowy (na jaki - zależy od potrzebnej tobie precyzji, zazwyczaj taki jak typ wyniku).

1 użytkowników online, w tym zalogowanych: 0, gości: 1