Dlaczego w funkcji lokalnej nie wypisuje zmiennych globalnych?

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

int n = 10; q = 2;
int main()
{
    int fun(int p);
    void f(void);
    int n = 0, p = 5;
    n = fun(p);

    printf("A : w main, n = %d, p = %d, q = %d\n",n,p,q);
    f();
}
int fun(int p)
{
    int q;
    q = 2 * p + n;
    printf("B: w fun, n = %d,p = %d, q = %d\n",p,q);
    return q;
}
void f(void)
{
    int p = q * n;
    printf("C: w f n = %d, p = %d, q = %d\n",n,p,q);
}
 

?
Dlaczego przy wypisywaniu B jest : n = 5, p = 20, q = 0 ? Bo ta funkcja chyba powinna skorzystać ze zmiennych globalnych i powinno być: n = 10; p = 5; q = 20

1

n = %d dostaje p
p = %d dostaje q
q = %d dostaje losową wartość

2

printf("B: w fun, n = %d,p = %d, q = %d\n",p,q);

Każesz w printfie wypisać 3 liczby, a podajesz tylko 2.

Zmień na

printf("B: w fun, n = %d,p = %d, q = %d\n",n,p,q);

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