Ir para conteúdo

Arquivado

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

Márcio Sousa

algoritmo!

Recommended Posts

Alguém poderia me ajudar nesse código?


#‎include <stdio.h>
#include <stdlib.h>
float saldo[999];
int i,n;
char cadastro(char nome[][999],char cpf[][999],char agencia[][999],char conta[][999],char senha[][999]){
FILE *fp;
int i=1;
printf("Digite a quantidade de clientes:\n");
scanf("%d",&n);
system("cls");
fp=fopen("Dados.txt","w");
if(fp==NULL){
printf("Erro ao abrir arquivo!\n");
}else{
for (i=1;i<=n;i++){
printf("Digite o Nome:\n");
fflush(stdin);
gets(nome[i]);
printf ("Digite o CPF:\n");
scanf ("%s", &cpf[i]);
printf ("Digite o numero da agencia:\n");
scanf ("%s", &agencia[i]);
printf ("Digite o numero da conta:\n");
scanf ("%s", &conta[i]);
printf ("Digite a senha:\n");
scanf ("%s", &senha[i]);
saldo[i]=0;
fprintf(fp,"%s\n",nome[i]);
fprintf(fp,"%s\n",cpf[i]);
fprintf(fp,"%s\n",agencia[i]);
fprintf(fp,"%s\n",conta[i]);
fprintf(fp,"%s\n",senha[i]);
}
}
fclose(fp);
printf ("*-- operacao realizada com sucesso !!!--*\n");
getch() ;
system("cls");
}
float deposito (char nome[][999],char cpf[][999],char agencia[][999],char conta[][999]){
int a,b,c,x;
float dep;
char agn[6], con[6];
printf ("\t\t===== DEPOSITO ===== \n");
printf ("Digite o numero da Agencia:\n");
scanf ("%s", &agn);
printf ("Digite o numero da conta:\n");
scanf ("%s", &con);
for(i=1;i<=n;i++){
a=strcmp(agn,agencia[i]);
b=strcmp(con,conta[i]);
if ( (a == 0) && (b == 0) ){
x=1;
printf ("Cliente: %s\n", nome[i]) ;
printf ("CPF: %s\n", cpf[i]) ;
printf ("Digite o valor do deposito:\n");
scanf ("%f", &dep);
system("cls");
}
if (dep >= 0){
saldo[i]= saldo[i]+dep;
}
else{
printf ("*-- ERRO: O DEPOSITO TEM QUE SER POSITIVO --*\n");
getch();
system("cls");
}
}
if(x!=1){
printf ("*-- ERRO: DADOS INCORRETOS ! --*\n");
getch();
system("cls");
}
}
consultaSaldo (char nome[][999],char cpf[][999],char agencia[][999],char conta[][999],char senha[][999]){
char agn[6], con[6], sen[6];
int a,b,c,x;
printf ("\t\t===== SALDO =====\n");
printf ("Digite o numero da agencia:\n");
scanf ("%s", &agn);
printf ("Digite o numero da conta:\n");
scanf ("%s", &con);
printf ("Digite a senha:\n");
scanf ("%s", &sen);
for (i=1;i<=n;i++){
a = strcmp(agn,agencia[i]);
b = strcmp(con,conta[i]);
c = strcmp(sen,senha[i]);
if ( (a == 0) && (b == 0) && (c == 0) ){
printf ("Cliente: %s\n", nome[i]) ;
printf ("CPF : %s\n", cpf[i]) ;
printf ("SEU SALDO E : %.2f reais\n", saldo[i]);
getch();
system("cls");
}
}
}
void menu(){
int op,n,d;
char cpf[30][999];
char agencia[30][999];
char conta[30][999];
char senha[30][999];
char nome[30][999];
do{
printf("\t\t**Menu**\n\n");
printf("1-Cadastrar Cliente\n");
printf("2-Deposito\n");
printf("3-Consultar Saldo\n");
printf("0-Sair\n");
printf("Digite um opcao:\n");
scanf("%d",&op);
system("cls");
switch (op){
case 1:
cadastro(nome,cpf,agencia,conta,senha);
break;
case 2:
deposito(nome,cpf,agencia,conta);
break;
case 3:
consultaSaldo(nome,cpf,agencia,conta,senha);
break;
}
}while(op!=0);
getch();
}
int main(int argc, char *argv[]) {
menu();
}

O problema é que quando cadastro 2 clientes, se deposito somente na conta do primeiro cliente o valor vai pra conta do segundo cliente também, e no caso se deposito somente na conta do segundo cliente fica normal, o primeiro fica com 0 e se deposito na conta dos dois, o primeiro fica normal e o segundo fica com o seu valor somado com o do segundo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use a tag CODE para postar códigos.

Não use gets nem fflush na entrada padrão. Temos um tópico fixo sobre isso.

 

Todos os fors estão com índice errado. Em C os arrays iniciam do zero. E você está escrevendo além da capacidade declarada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use a tag CODE para postar códigos.

Não use gets nem fflush na entrada padrão. Temos um tópico fixo sobre isso.

 

Todos os fors estão com índice errado. Em C os arrays iniciam do zero. E você está escrevendo além da capacidade declarada.

Mais mesmo se inicio os fors com 0, acontece a mesma coisa.

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.