#include <stdio.h>

typedef struct _nitelOzellikler{
	int cins;
	int renk;
	int sekil;
}nitelOzellikler;   //12 byte


typedef struct _nicelOzellikler{
	double agirlik;
	double yogunluk;
	double miktar;
}nicelOzellikler;	//24 byte


typedef union _ozellikler {
	nitelOzellikler nitel;
	nicelOzellikler nicel;
}ozellikler; // 24 byte


typedef struct _malzeme {
	char *firmaAdi;
	char *markasi;
	double stokMiktari;
	ozellikler ozellik;
}malzeme; //40 byte

void DisplayOp1(const malzeme *malz)
{
	printf("%s\n",malz->firmaAdi);
	printf("%s\n",malz->markasi);
	printf("%lf\n",malz->stokMiktari);
	printf("%d\n",malz->ozellik.nitel.cins);
	printf("%d\n",malz->ozellik.nitel.renk);
	printf("%d\n",malz->ozellik.nitel.sekil);
}

void DisplayOp2(const malzeme *malz)
{
	printf("%s\n",malz->firmaAdi);
	printf("%s\n",malz->markasi);
	printf("%lf\n",malz->stokMiktari);
	printf("%lf\n",malz->ozellik.nicel.agirlik);
	printf("%lf\n",malz->ozellik.nicel.miktar);
	printf("%lf\n",malz->ozellik.nicel.yogunluk);
}

int main()
{
	malzeme m1;
	malzeme m2;


	//op1 işlemi yapılıyor...
	m1.firmaAdi = "fabrika1";
	m1.markasi = "marka1";
	m1.stokMiktari = 10.0;
	m1.ozellik.nitel.cins = 1;
	m1.ozellik.nitel.renk = 2;
	m1.ozellik.nitel.sekil = 3;

	//op2 işlemi yapılıyor...
	m2.firmaAdi = "fabrika2";
	m2.markasi = "marka2";
	m2.stokMiktari = 20.0;
	m2.ozellik.nicel.agirlik = 10.5;
	m2.ozellik.nicel.miktar = 12.5;
	m2.ozellik.nicel.yogunluk = 0.02;

	DisplayOp1(&m1);
	DisplayOp2(&m2);

	

	return 0;
}