Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Novogle

Lixo na variável 'saldo'

Recommended Posts

Bom, antes de ler a variável 'saldo' da struct, o valor é = 0. Depois de eu mesmo ler o valor e inserir (por exemplo) 100, e imprimi-lo aparece o que eu creio que seja lixo: um número 4227284. Queria saber como fazer para não aparecer isso e sim o número que eu inserir no programa.

struct contas {
		int numeroConta;
		char nome[50];
		int cpf;
		int nDia;
		int nMes;
		int nAno;
		float saldo; 
		
	}cliente[5];


//códigos ocultados

void cadastro () {
	int i;
	for (i=1;i<=5;i++) {
	fflush(stdin);
	printf("Digite seu nome: \n");
	fflush(stdin);
	gets(cliente[i].nome);
	printf("Ok %s, digite o numero da sua conta: \n", cliente[i].nome);
	scanf("%d", &cliente[i].numeroConta);
	printf("\nOk! %s .Digite seu CPF: \n",cliente[i].nome);
	scanf("%d", &cliente[i].cpf);
	printf("Ok! Seu CPF é %d ! Agora digite seu dia de nascimento (em numero): ", cliente[i].cpf);
	scanf("%d", &cliente[i].nDia);
	printf("Agora o seu mês de nascimento (em numero):\n ");
	scanf("%d", &cliente[i].nMes);
	printf("Agora o seu ano de nascimento (em numero):\n ");
	scanf("%d", &cliente[i].nAno);
	printf("Sua data de nascimento é %d/%d/%d. Agora digite o saldo da sua conta.\n" ,cliente[i].nDia,cliente[i].nMes,cliente[i].nAno);
		printf("Seu saldo eh %f", cliente[i].saldo);
		cliente[i].saldo = 0; //coloquei essa linha ao tentar consertar, o que não funcionou...
		scanf("%f", &cliente[i].saldo);
	printf("Ok, seu saldo eh de %d\n", &cliente[i].saldo);
}
}


int main () {
	int x;
	printf("Digite 1 para cadastrar-se no banco\n 2 para transferencia entre contas\n 3 para saques\n 4 para depositos\n 5 para ver o saldo \n");
	scanf("%d", &x);
	switch (x) {
		case 1 : cadastro();
			return main();
			break;
		case 2 : transferencia();
			return main();
			break;
		case 3 : saque();
			return main();
			break;
		case 4 :deposito();
			return main();
			break;
		case 5 : verSaldo();
			return main();
			break;
	default : printf("Operacao invalida"); break; main();
}
	}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

 

 

Sou iniciante em C mas acho que posso lhe ajudar . . .

 

 

O problema parece estar nesta linha:

printf("Ok, seu saldo eh de %d\n", &cliente[i].saldo);

Não é necessario o " & " no printf () e o codigo de formatação está errado o correto seria " %f "

 

Alem disso tente ler este topico do forum que dá excelentes dicas sobre varios assuntos que podem lhe ser util, mas principalmente tente buscar informações sobre problemas relacionados ao uso das funções - gets() e fflush ( stdin )

 

http://forum.imasters.com.br/topic/336835-tutorial-systempause-e-fflushstdin/

 

 

Bom por hoa é só . . .

 

 

Ubuntu 14.04 Gcc 4.8 CodeBlocks 13.12

 

 

Espero Ter Ajudado ! ! !

Compartilhar este post


Link para o post
Compartilhar em outros sites


void cadastro () {

int i;

for (i=1; i<=5; i++) {

fflush(stdin);

printf("Digite seu nome: \n");

fflush(stdin);

gets(cliente.nome);

printf("Ok %s, digite o numero da sua conta: \n", cliente.nome);

scanf("%d", &cliente.numeroConta);

printf("\nOk! %s .Digite seu CPF: \n",cliente.nome);

scanf("%d", &cliente.cpf);

printf("Ok! Seu CPF é %d ! Agora digite seu dia de nascimento (em numero): ", cliente.cpf);

scanf("%d", &cliente.nDia);

printf("Agora o seu mês de nascimento (em numero):\n ");

scanf("%d", &cliente.nMes);

printf("Agora o seu ano de nascimento (em numero):\n ");

scanf("%d", &cliente.nAno);

printf("Sua data de nascimento é %d/%d/%d. Agora digite o saldo da sua conta.\n" ,cliente.nDia,cliente.nMes,cliente.nAno);

scanf("%f", &cliente.saldo);

printf("Ok, seu saldo eh de %.2f\n", cliente.saldo);

}

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa galera! Eu sabia que não precisava do & e creio que foi isso que me atrapalhou. Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.