Przekazanie wartości z funkcji do maina

0

Mam problem, bowiem nie wiem jak przekazać z funkcji wartości do maina.Funkcja ma tylko wczytywać liczby i przekazywać je do maina. Próbowałem ze wskaźnikiem, ale nie do końca wiem jak to działa.

#include <stdio.h>
#include <math.h>
void znak(float *a,float *b)
{
    printf("Podaj a");
    scanf("%f",&a);
    while(a<-20||a>20)
    {
        printf("wartosc spoza zakresu\n");
        scanf("%f",&a);
    }
    printf("Podaj b");
    scanf("%f",&b);
    while(b<-100||b>300)
    {
        printf("wartosc spoza zakresu\n");
        scanf("%f",&b);
    }
    
   return 0; 
}
int main()
{
	float a=0,b=0;
    znak(&a,&b);

printf(" %f %f",a,b);
    return 0;
}
0

Nie wnikając w te jakieś ify to w funkcji znak przy wczytywaniu float w funkcji scanf jeśli przekazałeś pointer to zamiast &a spróbuj samo a.

1

Spróbuj zwrócić wartość z funkcji, gdyż funkcja podczas swego wywołania pracuje na chwilowych wartościach na stosie, które znikaja, gdy skończy.

int f()
{
	int x = 4;
	return x;
}

int main(int argc, char **argv)
{
	int a = 0;
	a = f();
	 printf("%d", a); // -> 4
	 printf("\n");
	return 0;
}

EDIT:
A jak już Chcesz robić to mutując wartość funkcją typu void, to Przekaż pointer do zmiennej, a potem operatorem '*', Zmień wartość na którą on [wskaźnik] pokazuje:

void g(int * a)
{
	*a = 5;
}
int main(int argc, char **argv)
{
	int a = 0;
	g(&a);
	printf("%d", a); // -> 5
	printf("\n");
	return 0;
}

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