analiza programu w C

profesorq
Użytkownik
Użytkownik
Posty: 384
Rejestracja: 12 lut 2007, o 19:40
Płeć: Mężczyzna
Lokalizacja: wawa
Podziękował: 77 razy
Pomógł: 1 raz

analiza programu w C

Post autor: profesorq »

witam
moglby ktos przeanalizowac ten program i wyjasnic dlaczego wychodza takie liczby -3 -1 ?

Kod: Zaznacz cały

#include<stdio.h>
float x = 1.5;
float y = -2;
float proc(float z, float *x)
{
      *x *= y;
      return z + *x;
}
int main()
{
    float x, y, *z;
    x= 1.5; y=2; z = &x;
    y = proc(y,z);
    printf("%f %f
",x,y);
    
    puts("Wcisnij Enter aby zakonczyc program");
    fgetc(stdin);
  return 0;
           }
           
soku11
Użytkownik
Użytkownik
Posty: 6607
Rejestracja: 16 sty 2007, o 19:42
Płeć: Mężczyzna
Podziękował: 119 razy
Pomógł: 1823 razy

analiza programu w C

Post autor: soku11 »

No to tak:
1. W main przypisujemy y wartosc zrocona przez funkcje proc.
2. Funkcja proc zostaje wywolana z argumentami (2, wskaznik do x-a)
3. Funkcja pro przypisuje x-owi poprzez wskaznik wartosci:
x=x*y. Czyli w tym przypadku: x=1.5*(-2)=-3. Razy -2 dlatego, ze w funkcji nie ma zadnego odnosnika do y, tak wiec korzystamy ze zmiennej globalnej y. Funkcja zwraca wartosc z+x=(2+(-3)). -3 dlatego ze we wczesniejszej linijce zmienila sie wartosc x-a.
4. Wartosci wiec sa odpowiednio rowne x=-3, y=-1

POZDRO
ODPOWIEDZ