Salve, sto cercando di fare un programma che dice cosi;

Dobbiamo implementare un programma che simuli una pasticceria, il cliente puo scegliere fra : torta al cioccolato, tiramisu o bavarese, una volta che a scelto il nostro programma andra a vedere com'è fatta la ricetta ( ad esempio della torta ) e controllera gli ingredienti dopo di che andrà alla dispensa e verifichera gli ingredienti che mancano e li mettera nella lista della spesa.

Adesso io ho fatto il codice come se solo ci fosse la torta , ma ce qualcosa che non va, speriamo mi potete dare una mano
grazie

codice:
# include <iostream>
# include <cstring>
using namespace std;
const int z=100;
const int n=3;


void confronto (string  [],string [],string [], int);

int main ()
{
	int scelta;
	
	
	string a[n]={"torta", "tiramisu", "bavarese"};
	
	for (int i=0; i<n; i++)
	{
		cout<<a[i]<<' ';
		cout<<endl;
	}
	string spesa [z]={0};
	string dispensa [z]={ "cioccolato", "uova", "mascarpone"," farina ", "livieto"};
	string ricettaTorta [z]= {"zucchero", "uova", "biscotti","mascarpone","caffe"};
	cout<<"benvenuto alla pasticceria scegli :"<<endl;
	cout<<"1: torta al cioccolato"<<endl;
	cout<<"2: tiramisu"<<endl;
	cout<<"3: bavarese"<<endl;
	cin>>scelta;
	
	confronto (ricettaTorta , dispensa, spesa, scelta);

	
	return 0;
}

void confronto (string ricettaTorta [], string dispensa [] , string spesa, int scelta)
{
	
	if (scelta==1)
	
		for (int i=0; i<z  ;i++)
		{
			for (int j=0;i<z; j++)
			{
				if (ricettaTorta [i] != dispensa [j])
				spesa[z]=ricettaTorta[i];
				cout<<"la spesa da fare e:"<<endl;
				
				for (int i=0;i<z;i++)
				{
				cout<<spesa[i]<<' ';
				cout<<endl;
				}
			}
		}
	}