Fonksiyondan birden fazla değer nasıl döndürülür

NoWeDoR
Cool Çırak
Aşağıdaki programda return'lerin yanındaki printf ler yerine ne kullanarak , iki ayrı değeri dönderebilirim? (Program karmaşık sayıları topluyor ...)

PHP:
#include <stdio.h>
struct karmasiksayi
{
	int reel, sanal;
};
int topla(struct karmasiksayi ilk, struct karmasiksayi son)
{
	struct karmasiksayi toplam;
	toplam.reel = ilk.reel + son.reel;
	toplam.sanal = ilk.sanal + son.sanal;
	if (toplam.sanal < 0)
	{
		return printf("Toplam : %d%di\n", toplam.reel, toplam.sanal);
	}
	else
	{
		return printf("Toplam : %d+%di\n", toplam.reel, toplam.sanal);
	}
}
int carpim(struct karmasiksayi ilk, struct karmasiksayi son)
{
	struct karmasiksayi carpim;
	carpim.reel = (ilk.reel*son.reel) + (ilk.sanal*son.sanal*(-1));
	carpim.sanal = (ilk.reel*son.sanal) + (ilk.sanal*son.reel);
	if (carpim.sanal > 0)
	{
		return printf("Carpim : %d+%di\n", carpim.reel, carpim.sanal);
	}
	else
	{
		return printf("Carpim : %d%di\n", carpim.reel, carpim.sanal);
	}
}
int main()
{
	struct karmasiksayi ilk, son;
	printf("Ilk karmasik sayinin reel kismini belirtiniz : ");
	scanf("%d", &ilk.reel);
	printf("Ilk karmasik sayinin sanal kismini belirtiniz : ");
	scanf("%d", &ilk.sanal);
	printf("Ikinci karmasik sayinin reel kismini belirtiniz : ");
	scanf("%d", &son.reel);
	printf("Ikinci karmasik sayinin sanal kismini belirtiniz : ");
	scanf("%d", &son.sanal);
	topla(ilk, son);
	carpim(ilk, son);
	return 0;
}
 
- Yönetici düzenlemesi: :
YazılımMimarı
Forum Ustası
#include <tuple> kullanabilirsin. Eski versiyonlarında pair gibi bi şeyler vardı yenisinde tuple var.

Örnek bir kullanım;

PHP:
#include <tuple>

using namespace std;

tuple<int, int> bol(int bolunen, int bolen)
{
    return  make_tuple(bolunen / bolen, bolunen % bolen);
}

#include <iostream>

int main()
{
    int bolum, kalan;

    tie(bolum, kalan) = bol(14, 3);

    cout << bolum << ',' << kalan << endl;
}
 
Üst