paulo1205
(usa Ubuntu)
Enviado em 16/03/2016 - 09:27h
Alguns erros:
1) O valor inicial de
total_1 é indefinido (i.e. você não o definiu), e mesmo assim você soma a ele novas parcelas. Provavelmente você deveria defini-lo com 0 no início de cada iteração do seu loop externo.
2) Provavelmente você deveria também reinicializar
somatorio com zero a cada repetição.
3) O padrão do C++ não permite arrays nativos de tamanho variável, de modo que suas declarações de
notas e
cargah são inválidas. Alguns compiladores (como o g++) admitem isso para ter compatibilidade com o C, mas essa admissão pode não valer em outros compiladores.
Meu conselho é que você não use misture recursos de linguagens distintas, especialmente enquanto ainda as está aprendendo (e mesmo depois que se tornar profissional, reserve tais usos aos casos em que forem estritamente necessários). Como alternativa, sugiro que você use
std::vector (em <vector>). Se não puder usá-lo, trabalhe com alocação dinâmica explícita (
new [] e
delete[]).
4) O problema de não conseguir sair do loop se deve a um erro de construção no seu teste: “
continuar == 'S' || 's'” é sinônimo de “
(continuar == 'S') || ('s')”. Em Português, você testa se uma comparação é verdadeira ou se um valor fixo é verdadeiro. E esse valor fixo, no seu caso, é sempre verdadeiro.
Provavelmente você quis dizer “
continuar == 'S' || continuar == 's'” (note que neste caso você faz duas comparações e testa se alguma delas é verdadeira).
Um problema menor, que não chega a ser erro, é que em C++ você provavelmente deveria dizer <cstdlib>, em vez de <stdlib.h>. Dito isso, observo que você não usa coisa alguma de <cstdlib> no seu programa, de modo que provavelmente poderia simplesmente suprimir tal referência.