Como tive que refazer, estou colocando o código. Como disse, ele compila sem nenhum erro, mas dá aqueles probleminhas que eu postei anteriormente. #include <iostream> using namespace std; int checaQtdeNota (int ValorNota, int qtdSaldoNota, int saque, int valorReservado) { int retorno; retorno = (saque - valorReservado) / valorNota; if (retorno > qtdSaldoNota) retorno = qtdSaldoNota; return retorno; } int main () { int nota100, nota50, nota10, nota5, nota1; int numOp; // numero de operacoes int codigo; //codigo da operacao int saque; int saldo; int valorReservado; cout << "Entre com o numero de notas disponiveis separadas por espaco ente cada valor. "; cin >> nota100 >> nota50 >> nota10 >> nota5 >> nota1; cout << "Numero de operacores: "; cin >> numOp; cout << endl << "voce ira realizar" << numOp << "operacoes."<< endl << "Utilize: "<< endl << "0 para saque "<< endl << "1 para realizar depositos."<endl << endl; int saqueNota100, saqueNota50, saqueNota10, saqueNota5, saqueNota1, var; var = 0; while (numOp > var) // o programa encerrará quando fizer o numero de operacoes escolhidas pelo usuario { var = var + 1; cout << "Digite o codigo da operacao: "; cin >> codigo; if (codigo == 0) { cout << "Digite o valor do saque: "; cin >> saque; valorReservado = 0; saldo = (nota100*100) + (nota100*50) + (nota10*10) + (nota5*5) + (nota1); if (saldo > saque) { if (saque > valorReservado) { saqueNota100 = checaQtdeNota(100, nota100, saque, valorReservado); valorReservado = valorReservado + (saqueNota100 * 100); } if (saque > valorReservado) { saqueNota50 = checaQtdeNota(50, nota50, saque, valorReservado); valorReservado = valorReservado + (saqueNota50 * 50); } if (saque > valorReservado) { saqueNota10 = checaQtdeNota(10, nota10, saque, valorReservado); valorReservado = valorReservado + (saqueNota10 * 10); } if (saque > valorReservado) { saqueNota5 = checaQtdeNota(5, nota5, saque, valorReservado); valorReservado = valorReservado + (saqueNota5 * 5); } if (saque > valorReservado) { saqueNota1 = checaQtdeNota(1, nota1, saque, valorReservado); valorReservado = valorReservado + (saqueNota1 * 1); } if (valorReservado ==saque) { nota100 = nota100 - saqueNota100; nota50 = nota50 - saqueNota50; nota10 = nota10 - saqueNota10; nota5 = nota5 - saqueNota5; nota1 = nota1 - saqueNota1; cout << "Saque de " << saque << "efetuado." << endl; } else { saque = 0; cout << "não há notas suficientes para o saque." << endl; } } else { saque = 0; cout << "não há dinheiro suficiente para o saque" << endl; } saldo = saldo - saque; cout << "Situacao atual: | " << nota100 << " | " << nota50 << " | " << nota10 << " | " << nota5 << " | " << nota1 << " | " << saldo << " | " << endl; saque = 0 } } return 0; }