Salve, non vi nascondo che sono nuovo del mondo c++ e anche del forum.
Ho un problema. Devo ordinare i valori di un array sulla base di un particolare processo. Tuttavia la variabile rispetto alla quale ordino "score" non accetta valori del tipo ((P*Q)/W) e non capisco perchè. Vi posto il codice. I valori delle matrici sono caricati da un file esterno.
Grazie

codice:
//Apro il file 
    ifstream in("C:/.../bkpBwu200-1.txt"); 
    int j = 0; 
	int *w,*p,*q, *arrayOne, *ordinamento; int i,n,C;
	
//Size and capacity reading
	in >> n; in >> C;
	printf("TABELLA DATI\n\n");
    printf("\Cardinalita: %d.\n",n);
	printf("\Capacita massima: %d.\n",C);	
	p=new int[n]; w=new int[n]; q=new int[n]; arrayOne=new int[n]; ordinamento=new int(n);
	for(i=0;i<n;i++)
	{
	arrayOne[i] = i;
	in >> p[i]; in >> w[i]; in >> q[i];
//arrayOne[i] =(((p[i])*(q[i]))/w[i]);
	printf("\OBJ: %d, Profitto: %d, Peso: %d, Item: %d.\n", arrayOne[i], p[i], w[i], q[i]);
			}
	printf("\n");
//Ciclo che recupera i dati del file riga per riga e li mette in strings 
	while ( in ) { 
	in.getline(strings[j++], MAX_LINE_LEN);
    } 
	
//ORDINAMENTO NON CRESCENTE

double *score;
int salto,tempItem;
double tempScore;
score[j]=((p[j]*q[j])/w[j]);    <======== NON VA PROPRIO QUI
                                        Se tolgo la divisione  va                                                   

   for (salto = n/2; salto > 0; salto /=2)
       for (i = salto; i < n; i++)
           for (j = i-salto; j >= 0; j-=salto) {
               if (score[j] >= score[j+salto]) break;
               tempScore = score[j]; score[j]=score[j+salto]; score[j+salto]=tempScore;
			   tempItem = arrayOne[j]; arrayOne[j]=arrayOne[j+salto]; arrayOne[j+salto]=tempItem;
           }

		printf("Elenco Ordinamento O(nlogn)\n");
		printf("\n");
		for (int i = 0; i < n; i++)
        {cout << arrayOne[i] << " ";}//end for
		printf("\n");