Ir ao conteúdo
  • Cadastre-se

Henrique N Mendes

Membro Júnior
  • Posts

    7
  • Cadastrado em

  • Última visita

Tudo que Henrique N Mendes postou

  1. Bom dia, Clube do Hardware. Estou com um problema que provavelmente deve ser uma besteira, ou não... Eu fiz a lógica correta e o programa não me retorna o que quero. Quero contar os clientes(Isso ele até faz) e também quero somar as todas as compras. Segue o código: //Tentei desse jeito public class Quest4 { public static void main(String[] args){ String nomeCliente = null, chec = null; double valorCompra = 0, soma = 0; Scanner scanf = new Scanner(System.in); int cont=0; for(int i=0; ("FIM".equalsIgnoreCase(chec)!= true); i++){ System.out.println("Digite o nome da pessoa:\n"); nomeCliente = scanf.next(); cont++; System.out.println("Digite o preço da compra:\n"); valorCompra = scanf.nextDouble(); soma=valorCompra+soma; System.out.println("Digite FIM para sair:\n"); chec = scanf.next(); } System.out.printf("\nForam cadastrados %d clientes e a soma total das compras deram %.2f\n",cont,valorCompra); } } //Desse também public class Quest4 { public static void main(String[] args){ String nomeCliente = null, chec = null; double valorCompra = 0, soma = 0; Scanner scanf = new Scanner(System.in); int cont=0; while(true){ System.out.println("Digite o nome da pessoa:"); nomeCliente = scanf.next(); cont++; System.out.println("Digite o preço da compra:"); valorCompra = scanf.nextDouble(); soma=valorCompra+soma; System.out.println("Digite FIM para sair:\n"); chec = scanf.next(); if(chec=="FIM"){ break; } } System.out.printf("\nForam cadastrados %d clientes e a soma total das compras deram %.2f\n",cont,valorCompra); } } //Esse aqui também public class Quest4 { public static void main(String[] args){ String nomeCliente = null, chec = null; double valorCompra = 0, soma = 0; Scanner scanf = new Scanner(System.in); int cont=0; do{ System.out.println("Digite o nome da pessoa:"); nomeCliente = scanf.next(); cont++; System.out.println("Digite o preço da compra:"); valorCompra = scanf.nextDouble(); soma=valorCompra+soma; System.out.println("Digite FIM para sair:"); chec = scanf.next(); }while(chec!="FIM"); System.out.printf("\nForam cadastrados %d clientes e a soma total das compras deram %.2f\n",cont,valorCompra); } }
  2. Muito agradecido, muito obrigado a ajuda de todos. Vocês estão de parabéns!
  3. Eu to há uma semana trabalhando nisso, mas tá difícil de sair... To ficando nervoso já adicionado 8 minutos depois @devair1010 Cara, ele ordena dessa forma mesmo ? tipo x[0] = x, porque tipo, especificamente, não deveria ser o x[qualquer coisa].nome?
  4. Cara tentei criar na função de ordenar a lista exatamente como seu código e não foi, no nome fica invisível , logo após isso tentei jogar dentro do procedimento de listar, mas não tá indo, dessa vez ele imprimiu coisa nada a ver ahdushguh ex: cliente [101] ... Segue o código: void listarClientes(Usuario *x){ system("cls"); int i,j; char sNomeaux[61]; printf("\n-------Lista de clientes--------\n\n"); for(i=0;i<MAX;i++){ if(x[i].ativo==1){ for(i=0;i<MAX;i++){ for(j=(i+1); j<MAX; j++){ if( strcmp(x[i].nome, x[j].nome) > 0 ){ strcpy(sNomeaux,x[i].nome); strcpy(x[i].nome,x[j].nome); strcpy(x[j].nome,sNomeaux); i=0; //reseta i para verificar de novo } } } printf("\n\n--------Cliente [%d]------------\n",i+1); fflush(stdin); printf("\nNúmero da Conta: %s",x[i].nconta); printf("\nNome: %s\n",x[i].nome); printf("CPF: %s\n",x[i].cpf); printf("Telefone: %s\n",x[i].telefone); printf("Saldo: %f\n",x[i].saldo); printf("\n--------------------------------\n\n"); } } } void cadastro(Usuario* x){ system("cls"); float saldof=0.0; char conta[8]; char nome[61]; //Nome cliente char cpf[12]; //Cpf cliente char telefone[12]; //Telefone cliente int chec,i; do{ printf("Digite sua conta:\n"); gets(conta); fflush(stdin); printf("\nNome:\n"); gets(nome); while(strlen(nome) == 0){ printf("Digite alguma coisa, seu cabra...\n"); gets(nome); } printf("\nDigite o seu cpf:\n"); gets(cpf); while(strlen(cpf) == 0){ printf("Digite alguma coisa, seu cabra...\n"); gets(cpf); } printf("\nDigite seu CPF:\n"); gets(telefone); while(strlen(telefone) == 0){ printf("Digite alguma coisa, seu cabra...\n"); gets(telefone); } for(i=0; i<MAX; i++){ if(cliente[i].ativo==0){ getchar(); strcpy(x[i].nconta,conta); strcpy(x[i].nome,nome); strcpy(x[i].cpf,cpf); strcpy(x[i].telefone,telefone); x[i].ativo=1; break; } } x->saldo= saldof; system("cls"); printf("Seu número da conta é: %s [ATENÇÃO: NÃO DEIXE DE ANOTAR]",conta); printf("\n\n\nCADASTRO REALIZADO COM SUCESSO...\n\n\n"); printf("Digite 1 para continuar a fazer mais cadastros.\nDigite 0 para voltar ao menu.\n"); scanf("%d",&chec); system("cls"); }while(chec!=0); } Será que seja algo no cadastro? pois eu não consigo entender o porquê de não está imprimindo ordenado
  5. Ele simplesmente não ordena, não sei se está na minha declaração ou no procedimento de listar, mas continua sem aparecer ordenado. Segue o código: void listarClientes(Usuario *x){ system("cls"); int i; printf("\n-------Lista de clientes--------\n\n"); for(i=0;i<MAX;i++){ x=ordenalista(x); // Lembrando que já tentei tanto dentro do for, quanto fora. if(x[i].ativo==1){ printf("\n\n--------Cliente [%d]------------\n",i+1); fflush(stdin); printf("\nNúmero da Conta: %s",x[i].nconta); printf("\nNome: %s\n",x[i].nome); printf("CPF: %s\n",x[i].cpf); printf("Telefone: %s\n",x[i].telefone); printf("Saldo: %f\n",x[i].saldo); printf("\n--------------------------------\n\n"); } } } Usuario* ordenalista(Usuario *x){ int i,j; sNomeaux[61]; for(i=0;i<MAX;i++){ for(j=(i+1); j<MAX; j++){ if( strcmp(x[i].nome, x[j].nome) < 0 ){ strcpy(sNomeaux,x[i].nome); strcpy(x[i].nome,x[j].nome); strcpy(x[j].nome,sNomeaux); i=0; //reseta i para verificar de novo } } } return x; }
  6. Olá Clube do Hardware. Bem, esses dias estava finalizando um procedimento para listar um vetor de struct em ordem alfabética, porém quando tento fazer do meu "jeito", não funciona, também tentei implementar o buble ou selectionsort, mas eu surro o código inteiro e não faço ideia de como coloca-lo dentro do código, por isso venho aqui pedir o auxílio para vocês... A ideia do procedimento é o seguinte, além desse, no qual to com dúvida, há um procedimento de se cadastrar, óbvio, e cada vez que cadastro eu uso uma variável "ativo" inteira, para que quando o cadastro for efetuado com sucesso ele mude esse valor ativo para 1, por isso que vão encontrar "ativo" fazendo parte da checagem de listagem. É um projeto de um banco, e só to apanhando nesse procedimento, o resto já fiz... Pls help Aqui vai o código: typedef struct { char nconta[8]; //Número da conta float saldo; //Saldo cliente char nome[61]; //Nome cliente char cpf[12]; //Cpf cliente char telefone[12]; //Telefone cliente int ativo; }Usuario; void listarClientes(Usuario *x){ system("cls"); int i,j; char sNomeAux[61]; printf("\n-------Lista de clientes--------\n\n"); for(i=0;i<MAX;i++){ for(j=i; j>0; j--){ if( strcoll(x[j].nome, x[j-1].nome) < 0){ strcpy(sNomeAux,x[j].nome); strcpy(x[j].nome,x[j-1].nome); strcpy(x[j-1].nome,sNomeAux); } if(x[i].ativo==1){ fflush(stdin); printf("\n\n--------Cliente [%d]------------\n",i+1); fflush(stdin); printf("\nNúmero da Conta: %s",x[i].nconta); printf("\nNome: %s\n",x[i].nome); printf("CPF: %s\n",x[i].cpf); printf("Telefone: %s\n",x[i].telefone); printf("Saldo: %f\n",x[i].saldo); printf("\n--------------------------------\n\n"); } } } }

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