Ir ao conteúdo
  • Cadastre-se

C PROBLEMA 1 Linguagem em C repost


JoaoTesla

Posts recomendados

#include<stdio.h>
#include<stdlib.h>

int depositar (float aux, float saldo );
int main (void)
{
	float saldo = 0;
	float aux = 0;
	int valor;
	imprime_cabec();
	scanf("%d", &valor);
  
  system("pause");
  return 0;
}


void imprime_cabec(void)
{
  printf("------------------------------------\n");
	printf("ESCOLHA UMA DAS opções A SEGUIR:\n");
	printf("------------------------------------\n");
	printf(" 1 - Inserir Dinheiro\n");
	printf("------------------------------------\n");
	printf(" 2 - Mostrar Saldo\n");
	printf("------------------------------------\n");
	printf(" 3 - Sacar Dinheiro\n");
	printf("------------------------------------\n");
	printf(" 4 - Sair \n"); 

  return; 
}

int depositar (float aux, float saldo ){
 float resultado = 0;
 saldo = aux+saldo;
 resultado = saldo;
 return(resultado);
}

int menu(int numero){
	
	switch (numero)
{
   case 1 :
   	printf("Quer depositar quanto : ");
   	scanf("%f", &aux);
    depositar(aux,saldo);
    printf("Resultado = %d\n",depositar);
    break;
    
    case 2 :
    printf ("Seu saldo é de :%f \n",saldo);
    break;
    
    case 3 :
    printf ("Terça\n");
    break;
    
    case 4 :
    printf ("Quarta\n");
    break;
}
}

image.png.d5047797ff687b03cbf54dfa2df73982.png

 

esse é o problema e esse é o codigo que consegui fazer ate entao, nao sei se ta certo so quero terminar isso pra enviar hoje por que se nao pego DP

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Exclamacao.png.78aa600c6b3a434a3882f612e8d0d279.pngBoa noite, observei o seu problema de longe e questionava; se é eletiva de E.S. ou de E. Médio, de qual maneira use o mesmo critério para resposta, não sou nenhum especialista em C ou em interpretação de exames.

 

Ainda assim, o requerido pelo exercício é simplesmente que de nomes (implemente funções) para as operações comuns: adição, subtração e resultado. Exemplifico para que faça sentido o que estou expondo ti, segue abaixo:

/************************************************************[INSERIR_DINHEIRO]
* O banco insere dinheiro no caixa, soma o saldo atual no caixa eletrônico.
*
*		caixa = soma (banco, caixa);
*
* Parametro	Formal
* 	int	caixa - 'saldo atual' quantias no local do caixa eletrônico
*	int	banco - quantias para adicionar ao caixa eletrônico
*
* Retorno	'saldo atual' o caixa eletrônico de quantias atualizada.
*/	int

inserir_dinheiro (int banco, int caixa) {
	caixa_ +=  banco; /* soma (banco em 'caixa'); */
	return caixa; /* caixa de quantias atualizado */
}

Essa implementação equivale ao sua depositar

 

Logo:

int sacar_dinheiro (int cliente, int caixa);

É o nome da implementação reversa de ( + ) inserir_dinheiro, A ( - ) sacar_dinheiro.

Subtrai a 'caixa', antes testa se o saldo é suficiente, e retorna 'caixa' atualizado.

 

 

int mostrar_saldo (int caixa);

É o nome da implementação que escreve na tela a mensagem com saldo da 'caixa' e retorna.

"

 

A porção mais chatinha de código é a que envolve mensagens e leituras.

Não enxergo, além disso, no enunciado típico de exame EREM-PE no qual estou acostumado.

 

 

Desculpa se estou errado ou não fazer sentido.

"

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@JoaoTesla   não sei o que é DP , mas creio que seja algo desagradável ,  e por que você deixou para a última Hora para fazer esse exercício ? ,   ele não é muito difícil não , mas precisa de tempo para fazer e acertar alguns erros  que normalmente tem de primeira mão ,  então é bom começar com com bastante tempo de sobra ,  uma semana seria bom , e seu código não está funcionando por que você criou mas não incluiu as funções 

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#define cls system("cls");
void imprime_cabec();  // esse void é chato e não precisa
int menu(int numero, float,float);
int depositar (float aux, float saldo );
void gotoxy_2(int coluna, int linha);
int main (void)
{
  float saldo = 0;
  float aux = 0;
  int valor;
  imprime_cabec();
  scanf("%d", &valor);
  gotoxy_2(12,21);
  menu(valor,aux,saldo);
  system("pause");
  return 32768;
}
void gotoxy_2(int coluna, int linha)
{
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),(COORD){coluna,linha});
}

 

Link para o comentário
Compartilhar em outros sites

@JoaoTesla  Olá,

Esse problema é bem simples, você apenas deu uma complicada desnecessária no seu código mas, como este problema tem diversas formas de resolução, passarei um exemplo (INCOMPLETO) de uma possível resolução, fica por sua conta alterar e tornar o mesmo funcional:

 

/*
Escreva um programa em C que simule um caixa eletrônico. Ao
executar o programa deverá apresentar um menu com as opções:

	1 - Inserir dinheiro (banco)
	2 - Mostrar saldo (banco)
	3 - Sacar dinheiro (cliente)
	4 - Fim

Funcionalidades:
	Inserir dinheiro (banco) - o banco insere dinheiro no
	caixa. O programa deverá perguntar o valor inserido e
	somar ao saldo atual no caixa eletrônico.

	Mostrar saldo (banco) - o banco solicita o valor do
	saldo atual no caixa eletrônico.

	Sacar dinheiro (cliente) - O cliente saca dinheiro do
	caixa. O programa deverá perguntar o valor desejado 
	pelo cliente e este valor deverá ser subtraído do
	saldo do caixa. Caso o valor informado for maior que
	o saldo, o programa deverá informar ao cliente.

	Fim (banco) - o banco finaliza o caixa e o programa
	deverá mostrar o saldo atual do caixa.

	Obs.: Ao concluir as operações 1, 2 e 3 deverá retornar
	ao menu.
*/
#include <stdio.h>
#include <stdlib.h>

/*
 APENAS UM EXEMPLO, VOCÊ PODE FAZER DE DIVERSAS OUTRAS
 FORMAS, NÃO SOLUCIONAREI O SEU PROBLEMA POR COMPLETO
 APENAS UMA PARTE. LEIA O CÓDIGO BUSQUE entender O
 MESMO, TEM VÁRIAS ALTERAÇÕES QUE PODERIAM SER FEITAS.
*/

// Função para efetuar o depósito:
int depositValue(double iv, double * p);

// Função para efetuar o saque:
int withdrawValue(double iv, double * p);

int
main()
{
	// VARIAVEL COM SALDO ATUAL:
	double saldo = 0;
	
	/*
	LEVANDO EM CONTA QUE O CÓDIGO NECESSITA
	DE MAIS DE UM MENU UTILIZEI UMA VARIÁVEL
	TIPO 2D ARRAY PARA AS OPÇÕES DO MENU:

	OBS.: APENAS POR ESCOLHA, SE NÃO QUISER BASTA
	CRIAR OUTRA VÁRIA E ADAPTAR O RESTANTE DO MENU:
	*/
	char menu[2][32];
  
	do
	{
		printf("\n1 - Inserir dinheiro (banco)");
		printf("\n2 - Mostrar saldo (banco)");
		printf("\n3 - Sacar dinheiro (cliente)");
		printf("\n4 - Fim\n:: Entre uma opção: ");
		
		// NÃO UTILIZE O scanf() ALTERNATIVA? fgets():
		fgets(menu[0], sizeof(menu[0]), stdin);

		if (atoi(menu[0]) == 1)
		{
			printf("\n- Valor: ");
			fgets(menu[1], sizeof(menu[1]), stdin);
			/*
			USE AQUI A FUNÇÃO RELATIVA PARA FAZER O DEPOSITO,
			CONVERTA O VALOR DE 'menu[1]' PARA DOUBLE.
			
			OBS.: PASSE O ENDEREÇO DA VARIÁVEL 'saldo', NÃO O VALOR.
			*/
		}
		else if (atoi(menu[0]) == 2)
		{
			printf("\n- Saldo atual: %.2f\n", saldo);
		}
		else if (atoi(menu[0]) == 3)
		{
			printf("\n- Valor: ");
			fgets(menu[1], sizeof(menu[1]), stdin);
			/*
			USE AQUI A FUNÇÃO RELATIVA PARA FAZER O SAQUE,
			CONVERTA O VALOR DE 'menu[1]' PARA DOUBLE.
            
			OBS.: PASSE O ENDEREÇO DA VARIÁVEL 'saldo', NÃO O VALOR.
			*/
		}
		else if (atoi(menu[0]) != 4)
		{
			printf("\nopção invalida!\n");
		}
	} while(atoi(menu[0]) != 4);

	/*
		COLOQUE AQUI A MENSAGEM FINAL.
	*/
	return 0;
}

/*
OBS.:
COMO AMBAS FUNÇÕES ESTÃO UTILIZANDO PONTEIROS PARA ALTERAR O
VALOR DA VARIÁVEL DESTINO, UTILIZE '*p' E NÃO APENAS 'p';
*/
int
withdrawValue(double iv, double * p)
{
	if (iv <= 0)
	{
		printf("\nvalor invalido!\n");
		return -1;
	}
	if (*p < iv)
	{
		printf("\nsaldo insuficiente.\n");
		return -1;
	}
	
	// COLOQUE AQUI A OPERAÇÃO NECESSÁRIA PARA "SACAR".

	p = NULL;
	return 0;
}

int
depositValue(double iv, double * p)
{
	if (iv <= 0)
	{
		printf("\nvalor invalido!\n");
		return -1;
	}
	
	// COLOQUE AQUI A OPERAÇÃO NECESSÁRIA PARA DEPOSITAR.

	p = NULL;
	return 0;
}

 

O ato f de estudar é muito importante! 😉

 

Espero ter lhe ajudado em algo, até mais!

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!