Se sei in c++, puoi usare la classe string.
altrimenti, al 100% intendeva non usare un array di stringhe (quindi matrice di char, come detto da oregon, non puoi usare char nomi[10][50] ma devi usare char nomi[10], che ti permette di salvare una sola stringa).
ergo, il tuo programma si baserà sostanzialmente solo sui sommatori.
char nome[10]; // nome del prodotto
const char* endValue = "Stop";
double totPrezzi = 0, totSconto = 0, totCosto = 0; // sommatori
do
{
fgets(nome, sizeof(nome), stdin); // legge il nome del prodotto
if (strcmp(nome, endValue) != 0)
{
double tmpPrezzo; // prezzo del prodotto appena inserito
double tmpPrezzoScont; // prezzo del prodotto con lo sconto applicato
scanf("%f", tmpPrezzo);
totPrezzi += tmpPrezzo; // totale dei prezzi inseriti finora
tmpPrezzoScont = tmpPrezzo - tmpPrezzo * 10 / 100;
totSconto += (tmpPrezzo * 10 / 100);
totCosto += tmpPrezzoScont;
}
} while (strcmp(nome, endValue) != 0);
alla fine effettuerai la stampa dei 3 sommatori.
credo sia impossibile che il tuo prof. ti abbia impedito di usare le stringhe: sarebbe un esercizio totalmente inutile, inoltre si coglie che la traccia è volta a farti ragionare utilizzando appunto questi sommatori, non a farti smadonnare nel cercare di leggere carattere per carattere.