De ínicio desenvolvi uma lógica pensando em funcionalidades interessantes para um sistema real (como categorias e saldo de carteira), mas acabei passando uma complexidade desnecessária kkkkk:
1. A Despesas será uma lista que virá com os valores de mercado, transporte, lazer, saude, eletricidade, agua, educacao;
2. O Valor começará em 0;
3. Esse é o objeto que será chamado de ValorDespesa que será atribuiudo um Valor em uma respectiva varíavel dentro da lista de despesas;
4. Para que o usuário possa atribuir será usado uma váriavel chamada Preço ao qual poderá inserir um novo Valor que corresponde ao que ele possui;
5. Usuário terá um objeto chamado Carteira onde será o quanto ele tem;
5. Em uma estrutura de repetição:
Enquanto a carteira for diferente de 0:
* Pedir o próximo valor.
Se Despesas[ValorDespesa][posicao] = 0:
Preço = Despesas[ValorDespesa][posicao];
* Adicione o valor ao total. {
despesaTotal = Despesas[ValorDespesa].Somar
*Com base no valor da despesaTotal será cobrado da Carteira
Saldo = Carteira - despesaTotal
Exiba(Saldo)
Depois da correção da lógica apliquei conforme pedia o exercicio
1. Defina uma variável chamada totalDespesas com o valor 0.
2. Peça para o usuário digitar o valor de uma despesa.
3. Guarde esse número em uma variável chamada valorDigitado.
4. Enquanto valorDigitado for diferente de 0:
a. Some o valorDigitado ao totalDespesas (totalDespesas = totalDespesas + valorDigitado).
b. Peça novamente para o usuário digitar o próximo valor (ou 0 para encerrar).
c. Atualize a variável valorDigitado com o novo número informado.
5. Quando o loop terminar (ou seja, quando o usuário digitar 0):
a. Exiba na tela o valor de totalDespesas.