Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Podstawy funkcji, wczytywanie i drukowanie zmiennych

Ostatnio zmodyfikowano 2017-02-25 18:35
Autor Wiadomość
cotyniepowiesz
Temat założony przez niniejszego użytkownika
Podstawy funkcji, wczytywanie i drukowanie zmiennych
» 2017-02-25 14:40:25
Witam, zaczynam naukę funkcji. Co jest przyczyną niepoprawnego wydruku zmiennej wpisanej z klawiatury?

C/C++
#include <stdio.h>
#include <stdlib.h>

int suma( int a, int b, int c )
{
    return( a + b + c );
}

void wczytywanie( int x )
{
    int k;
    do
    {
        printf( "\n podaj liczbe:" );
        k = scanf( "%d", & x );
        if( k == 0 ) printf( "\n Blad formatu!" );
       
        fflush( stdin );
    }
    while( k == 0 );
   
}

void drukowanie( int x )
{
    printf( "\n Podana liczba wynosi: %d", x );
}


int main()
{
   
    void wczytywanie( int q );
    void drukowanie( int q );
   
    int q;
   
    int a = 1, b = 1, c = 1;
    int x = 1, y = 9, z = 10;
   
    int m = suma( a, b, c );
    printf( "\n Suma podanych liczb wynosi: %d", m );
   
    int n = suma( x, y, z );
    printf( "\n Suma podanych liczb wynosi: %d", n );
   
    wczytywanie( q );
    printf( "\n wydruk:" );
    drukowanie( q );
   
   
   
   
    return 0;
}
P-158286
maly7
» 2017-02-25 15:49:44
Funkcja
wczytywanie( q );
 nie może edytować zmiennej q. Żeby tak było musisz użyć wskaźnika/referencji.
Na początku zrób po prostu, żeby funkcja zwracała wartość i wtedy
q = wczytywanie();
P-158289
cotyniepowiesz
Temat założony przez niniejszego użytkownika
» 2017-02-25 16:56:36
Nie do końca wiem co tam pozmieniać...
P-158290
maly7
» 2017-02-25 17:47:04
Żeby funkcja nie przyjmowała żadnego argumentu, ale żeby go zwracała:
C/C++
int wczytywanie( void )
{
    int k, x;
    do
    {
        printf( "\n podaj liczbe:" );
        k = scanf( "%d", & x );
        if( k == 0 ) printf( "\n Blad formatu!" );
       
        fflush( stdin );
    }
    while( k == 0 );
   
    return x;
}
I później zmienić main;
C/C++
int main()
{
    int q;
   
    int a = 1, b = 1, c = 1;
    int x = 1, y = 9, z = 10;
   
    int m = suma( a, b, c );
    printf( "\n Suma podanych liczb wynosi: %d", m );
   
    int n = suma( x, y, z );
    printf( "\n Suma podanych liczb wynosi: %d", n );
   
    q = wczytywanie();
    printf( "\n wydruk:" );
    drukowanie( q );
   
    return 0;
}

Funkcja ma zwracać wartość tak jak funkcja suma.
P-158291
cotyniepowiesz
Temat założony przez niniejszego użytkownika
» 2017-02-25 18:35:56
Dzięki wielkie :)
P-158292
« 1 »
  Strona 1 z 1