ďťż

Ładny brzuch

Mam taki oto prosty programik:


#include <stdio.h>
int suma(int, int);
main()
{
int a=0;
int b=0;
printf("podaj bok a:");
    scanf("%d",&a);
printf("Podaj bok b: ");
  scanf("%d",&B);

printf("suma wynosi: %d a iloraz %d",suma(a,B));

return 0;
}

//--------------------
int suma( int x , int y )
{
int suma;
int ilo;

suma=x+y;
ilo=x*y;

return suma,ilo ;

}


W jakis sposob zwrocic dwa paramentry od funkcji.
Taki zapisi zwracana jest tylko wartosc ilo.
No i w jaki sposob nalezy sie odwołac do takiej f-cji



Ja bym to tak zrobił:

#include <stdio.h> int suma(int, int); main() { int a=0; int b=0; int iloczyn; int sum; printf("podaj bok a:");    scanf("%d",&a); printf("Podaj bok b: ");  scanf("%d",&b); sum = suma(a,b,iloczyn); printf("suma wynosi: %d a iloczyn %d",sum,iloczyn); return 0; } //-------------------- int suma( int x , int y ,&ilo) { int suma; int ilo; suma=x+y; ilo=x*y; return suma; }
Użytkownik hakersa edytował ten post 23 październik 2005, 13:46
LUB:
struct SWynik { int suma, iloczyn; }; SWynik suma( int x, int y ); main() { int a=0; int b=0; printf("podaj bok a:");   scanf("%d",&a); printf("Podaj bok b: "); scanf("%d",&b); SWynik wynik = suma(a,b); printf( "suma wynosi: %d a iloczyn %d", wynik.suma, wynik.iloczyn ); return 0; } //-------------------- SWynik suma( int x , int y ) { SWynik ret; ret.suma=x+y; ret.iloczyn=x*y; return ret; }
Użytkownik Real_Noname edytował ten post 23 październik 2005, 15:05
chodzi o referencje
troche poczytałem, zastosowalem się do tego co piszecie i mam cos takiego:
#include<stdio.h> int fun(int x, int y, int &ilo); main() { int a=3; int b=3; int iloczyn; printf("Suma=%d Iloczyn=%d",fun(a,b,iloczyn),iloczyn); return 0; } int fun(int x, int y, int &ilo) { int suma=x + y; ilo= x * y; return suma; }

Czemu ciagle mi nie liczy iloczynu ?
Użytkownik Crisu edytował ten post 23 październik 2005, 17:13


dobra metoda prob i bledow doszedlem ale za cholere nie wiem dlaczego tak:

#include<stdio.h>
int fun(int x, int y, int &ilo);
main()
{
int a=3;
int b=3;
int iloczyn;
int wynik=fun(a,b,iloczyn);
printf("Suma=%d Iloraz=%d",wynik,iloczyn);

return 0;
}

int fun(int x, int y, int &ilo)
{
int suma=x + y;
ilo= x * y;

return suma;
}

Czemu nalezy przypisac wynik funkcji do jakies nowej zmiennej??
Użytkownik Crisu edytował ten post 23 październik 2005, 17:28

chodzi o referencje
troche poczytałem, zastosowalem się do tego co piszecie i mam cos takiego:
#include<stdio.h> int fun(int x, int y, int &ilo); main() { int a=3; int b=3; int iloczyn; printf("Suma=%d Iloczyn=%d",fun(a,b,iloczyn),iloczyn); return 0; } int fun(int x, int y, int &ilo) { int suma=x + y; ilo= x * y; return suma; }

Czemu ciagle mi nie liczy iloczynu ?

Balcerowicz: int &a to nie jest wskaźnik int *a, to jest przekazywanie przez referencje.

Kodie ma racje:)
No juz wszystko działa tylko ciagle nie wiem jaka jest roznica miedzy

wynik=fun(a,b,iloczyn)
printf("%d %d ",wynik,iloczyn)

a

printf("%d %d",fun(a,b,iloczyn),iloczyn);

w kazdym razie thx za pomoc all


Kodie ma racje:)
No juz wszystko działa tylko ciagle nie wiem jaka jest roznica miedzy (...)
Taka, że w pierwszym przypadku używasz zmiennej pomocniczej wynik ;)

......
ale czemu po uzyciu zmiennej wynik dziala ok a bez jej uzycia sie wywala?
skoro teoretycznie to ten sam kod
Użytkownik Crisu edytował ten post 23 październik 2005, 18:38
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •