¡Hola!
Primero que nada, no voy a resolver yo el ejercicio, porque así no aprenderías y además sería injusto.
Querría hacer una observación sobre la forma de expresarse. En programación, y en general en todas las ciencias, es muy importante emplear un lenguaje lo menos ambiguo posible, claro y técnico, en medida de lo que alcancen tus conocimientos. Dices...
(no tiene que tener variables globales)
Esa frase estrictamente quiere decir: "no es necesario que tenga variables globales, no es obligatorio". Sin embargo, haciendo algo de metajuego entiendo que lo que quieres decir es: "No ha de usar variables globales/ No está permitido emplear variables globales/ Es obligatorio hacerlo sin variables globales". En problemas más complejos, esta diferencia que a priori puede parecer muy tiquismiquis marca la diferencia entre crear un programa correcto y crear uno incorrecto.
Respecto al problema, yo (y seguramente cualquiera) estaré encantado de ayudarte si nos ofreces algo de código, un intento aunque sea fútil de resolverlo y que nos demuestre que lo has meditado lo suficiente. Como no tienes nada de código sólo puedo aportarte unas guías generales:
Puedes utilizar un vector (como estás en C, sería un array) o una lista enlazada (quizás en este caso sea mejor una lista enlazada, ya que a priori no sabes el número de compras hasta que te ingresan una con el número de ticket igual a cero) de structs para guardar la información sobre las compras. El struct tendría como campos el número de ticket, el número del remedio, el número del rubro, la cantidad, el valor unitario y el número del vendedor. A partir de ahí, una forma muy fácil de resolver el problema sería recorrer la lista el número de veces que te sea necesario para hallar el resultado de cada una de las cosas que te piden. Hacerlo de esta manera puede resultar algo más ineficiente que calcular dos o tres de ellos en el mismo recorrido (o incluso todo), pero te puede ayudar al principio para separar el problema en subproblemas de dimensión menor. Una vez tengas hecho el primer apartado (el de la facturación total), los demás son muy sencillos.
Respecto a lo de las variables globales, no es una restricción demasiado fuerte. De hecho, acostúmbrate a hacerlo todo sin variables globales. Éstas es conveniente usarla sólo en ocasiones especiales (por ejemplo, cuando programas con OpenGL en C, con el que no puedes declararte clases, es más cómodo usar variables globales).
Saludos y ánimos resolviendo el problema.