No he mirado tú código, solo tu exposición inicial:
Introduce el codigo de un proveedor : 1
El total facturado del producto 1 es : 10.0€
El total facturado del producto 2 es : 20.0€
El total facturado del proveedor es : 30.0€
Si simplemente te falta la línea en negrita, entonces es que te falta el 'subtotal'...
1 - Cada vez que se facture un producto, actualiza el subtotal.
...facturado producto 1= imprimir totalProducto (al caso de ejemplo 10.0)
subtotal += totalproducto
2 - Cuando ya no haya más productos... entregas, imprimes el total:
total = subtotal
subtotal = 0
... facturado proveedor = imprimir total
El subtotal, no tiene porqué ponerse a 0, por el mero hecho de imprimir el total... sino por una operación específica...
Esto es, un cliente compra varios productos, a un proveedor, cuando ya no compra más puede COMPRAR-PAGAR y reclamar el balance, que es cuando se extiende la factura, mientras, lo mejor es actuar con el típico 'carrito de la compra', donde la compra son solo reservas temporales hasta el momento que pulse comprar, y las reservas simplemente es un array (mejor una lista enlzada) donde cada ítem relaciona proveedor, producto y cliente, así al final de la compra, si compró de diferentes proveedores, puede sumar el total de cada proveedor y luego el total de todos los proveedores....
...pero si es un ejercicio, no te compliques tanto.