• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

bryanmg

Duvida num exercicio

3 mensagens neste tópico

To fazendo um exercicio em c++, mas ta dando um erro, é o seguinte

Criar um algoritmo que leia um conjunto de itens de uma nota fiscal, calcule

e imprima o valor total da nota. Cada item é composto pelos seguintes campos:

• Número do item

• Quantidade

• Preço unitário

O algoritmo deverá realizar seu processamento até que o usuário digite (zero)

como número do item.

fiz isso tudo mais na hora de calcular o valor da total da nota, ta dando erro e não to conseguindo alguem pode ajudar o codigo é esse.

#include <iostream>
using namespace std;
int main(){
int numero_item, conte = 0, quantidade; 
float multi, soma = 0,valor_unitario, valor_total;

cout << "\nDigite o Numero do item (Digite zero para sair): ";
cin >> numero_item;

while(numero_item != 0){
cout << "\nDigite a quantidade de itens: ";
cin >> quantidade;


cout << "\nDigite o valor unitario: ";
cin >> valor_unitario;


multi = quantidade * valor_unitario;



cout << "\nDigite o numero do item (Digite zero para sair): ";
cin >> numero_item;

}
valor_total = soma + multi;

cout << "\nValor total da nota e': " << valor_total << "\n\n";
system ("pause");
return 0;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tas a fazer uma operação com tipos diferentes.

int numero_item, conte = 0, quantidade;
float multi, soma = 0,valor_unitario, valor_total;

O multi é float e o quantidade int.

Tenho quase a certeza que o teu problema é esse. Estass a fazer operações com tipos diferentes.

Além de que se numero_item e int e a quantidade é int, a sua soma nunca dara float. O melhor mesmo é passares o multi para int.

Muda o flaot para int.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Parece-me que o problema está no ciclo while..

Se reparares em:

valor_total = soma + multi;

soma tem um valor 0, porque nunca incrementas nada à variável. Logo o valor_total será igual ao último item introduzido.

Tenta pôr o ciclo while assim:

while(numero_item != 0){
cout << "\nDigite a quantidade de itens: ";
cin >> quantidade;

cout << "\nDigite o valor unitario: ";
cin >> valor_unitario;

soma+=multi;
multi = quantidade * valor_unitario;

cout << "\nDigite o numero do item (Digite zero para sair): ";
cin >> numero_item;
}

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora