Ir ao conteúdo

Posts recomendados

Postado

Determinado banco, todos os meses desconta uma taxa de administração de R$12,47 de seus clientes. Sempre que o saldo da conta estiver negativo, o banco envia uma mensagem ao cliente, lembrando-o da dívida
a) Faça uma função que receba como parâmetro o número de clientes do banco. Para cada cliente, a função deverá ler o saldo atual, calcular e imprimir o valor do saldo após o desconto. Caso, após a operação, o saldo esteja negativo, a função deverá imprimir a frase “SALDO NEGATIVO, CLIENTE DEVE SER COMUNICADO”.
b) Faça um programa (função main) que leia o número de clientes do banco e chame a função da letra a.

 

Fiz esse código porém o resultado do primeiro saldo não está imprimindo.

 

#include <iostream>

using namespace std;
void comunicarcliente(int numcliente)
{
cin>>numcliente;
float saldo, totalsaldo;

for(int i=1; i<=numcliente;i++){
    cout<<i<<endl;
    cin>>saldo;
   saldo-=12.47;
    cout<<saldo<<" "<<endl;
}
    if(saldo<0){
        cout<<"SALDO NEGATIVO, CLIENTE DEVE SER COMUNICADO"<<endl;
    }
}

int main()
{
    int clientes,numcliente;    
    cin>>clientes;
    comunicarcliente(numcliente);

    return 0;
}

 

  • Amei 1
Postado

Uma dica, usa o chat-gpt, ele dar uma boa ajuda. Bons estudos!

 

1. A função `comunicarcliente` recebe `numcliente` como um argumento, mas você também está lendo `numcliente` novamente dentro da função, o que é redundante e não é necessário.

2. A variável `saldo` e a verificação `if(saldo<0)` estão fora do loop `for`, o que significa que apenas o saldo do último cliente será verificado. Isso provavelmente não é o comportamento desejado.

3. Dentro da função `comunicarcliente`, você está tentando ler o número de clientes novamente com `cin >> numcliente;`, o que não é necessário.

Aqui está uma versão corrigida do código:


 

#include <iostream>
using namespace std;

void comunicarcliente()
{
    int numcliente;
    
    cout << "Informe o número de clientes: ";
    cin >> numcliente;
    
    for (int i = 1; i <= numcliente; i++) {
        float saldo;
        
        cout << "Informe o saldo do cliente " << i << ": ";
        cin >> saldo;
        
        saldo -= 12.47;
        cout << "Saldo atualizado do cliente " << i << ": " << saldo << endl;
        
        if (saldo < 0) {
            cout << "SALDO NEGATIVO, CLIENTE DEVE SER COMUNICADO" << endl;
        }
    }
}

int main()
{
    comunicarcliente();
    return 0;
}


 

 

Nesta versão corrigida:

- A função `comunicarcliente` não recebe mais `numcliente` como argumento, pois o número de clientes é lido dentro da função.
- A leitura do número de clientes agora está dentro da função `comunicarcliente`.
- O saldo de cada cliente é lido e verificado dentro do loop `for` para cada cliente individualmente.

  • Obrigado 1
Postado

@Caio Fernandes1    o código do  @Marcelo Augusto ZCK  está bem explicado ,  e com informações para quem for usar , mas  não está seguindo o que diz o enunciado ,  que diz para enviar o número de clientes para a função ,  então creio que , também poderia ser assim  :

#define     _WIN32_WINNT 0x600
#define     _h GetStdHandle(STD_OUTPUT_HANDLE)
#include    <stdio.h>
#include    <conio.h>
#include    <iso646.h>
#include    <stdlib.h>
#include    <string.h>
#include    <windows.h>
#include    <math.h>
#include    <iostream>
/***
     Descontar uma taxa de administração de R$12,47 .
  a) Faça uma função que receba como parâmetro o
     número de clientes do banco. Para cada cliente,
     a função deverá ler o saldo atual, calcular e
     imprimir o valor do saldo após o desconto. Caso,
     após a operação, o saldo esteja negativo, a
     função deverá imprimir a frase
     “SALDO NEGATIVO, CLIENTE DEVE SER COMUNICADO”.
  b) Faça um programa (função main) que leia o
     número de clientes do banco e chame a função da letra a.
***/
using namespace std;
void comunicarcliente(int numcliente)
{ ///                            ▲
  /// cin>>numcliente; já obteve | essa inform
  float saldo;
  for(int i=0; i<numcliente; i++)
  {
    saldo = 0;      /// resetar a variaVL
    cout << "Saldo Atual do Clinte " << i+1 << " --: ";
    cin  >> saldo;
    saldo -= 12.47; /// economiza uma variAveL
    cout << "ValoR Apos o Desconto " << saldo << " <----\n" << endl;
    if( saldo < 0 )
      cout << "SALDO NEGATIVO, CLIENTE DEVE SER COMUNICADO" << endl;
  }
}
int main    ( int argc, char *argv[]                     )
{
  int letra,fundo;
  CONSOLE_SCREEN_BUFFER_INFO c                           ;
  if( GetConsoleScreenBufferInfo     ( _h, & c )         )
  {
    letra = (   c.wAttributes & 0xFF )             & 0x0F;
    fundo = ( ( c.wAttributes & 0xFF ) >> 4     )  & 0x0F;
  }
  SetConsoleTextAttribute( _h, 11 +       ( 0 << 4 )    );
  ///------------------------------------------------------
  
  int               numcliente  ;
  cout << "Num de Clinte's --: "; /// inf o que digitA
  cin >>            numcliente  ; /// leu o num de client's
  cout << endl;
  comunicarcliente( numcliente ); /// enviou p/ a func

  ///------------------------------------------------------
  SetConsoleTextAttribute( _h, letra +  ( fundo << 4 )  );
  return                                                0;
}

 

  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...