Ir ao conteúdo
  • Cadastre-se

TheNick

Membros Juniores
  • Total de itens

    11
  • Registro em

  • Última visita

  • Qualificações

    N/D
  1. Agora sim @Asrety , o programa ficou perfeito, está lendo e imprimindo nome e sobrenome, muito obrigado pela ajuda.
  2. O erro estava naquele "&p" da função somando @allanxd , eu o retirei e deu certo aqui, muito obrigado pela força.
  3. Estou chamando ela dessa forma @allanxd void imprimir(struct lista a[], int *p){ int i; float soma = 0; printf("\nLISTA\n"); for (i = 0; i < *p; i++){ //printf("\nNome: %s", a[i].nome); //printf("\nRua: %s", a[i].rua); //printf("\tNumero: %d", a[i].num); //printf("\tCPF: %s", a[i].cpf); printf("\nSaldo: %.2f\n", a[i].saldo); } somando(a, &p); printf("\nSoma: %.2f\n", somando(a, p)); }
  4. Boa tarde @Asrety , te agradeço muito pela força, o código está funcionando perfeitamente, porém tem duas coisas que eu não consegui mudar, quando vou cadastrar um nome, assim que aperto a tecla espaço para inserir o sobrenome o programa da erro, a outra é esse caractere antes da opção "0. Sair", também não consegui encontrar onde esse erro se encontra. Meu compilador é o CodeBlocks adicionado 2 minutos depois Boa tarde @allanxd, eu tentei o código original com essas modificações, mesmo assim ele não soma, na hora de somar o programa para uns 2 segundos e termina do nada.
  5. Boa noite @allanxd , sempre que eu tento algum return o compilador da erro, a unica maneira que ele aceita é essa: float somando(float *soma, struct lista a[], int *p){ int i; for (i = 0; i < *p; i++){ *soma += a[i].saldo; } return *soma; }
  6. Boa noite @Asrety , eu compilei o código de acordo com as alterações que você recomendou, mas mesmo assim ele não calcula a soma das contas, eu dou enter, o programa da uma pausa de uns 2 segundos e após isso finaliza.
  7. Está certo dessa maneira? porque agora nem calcula float somando(struct lista a[], int *p){ float soma, saldo; int i; for (i = 0; i < *p; i++){ soma = soma + a[i].saldo; } return soma; } void imprimir(struct lista a[], int *p){ int i; float soma, saldo; printf("\nLISTA\n"); for (i = 0; i < *p; i++){ printf("\nNome: %s", a[i].nome); printf("\nRua: %s", a[i].rua); // printf("\tNumero: %d", a[i].num); // printf("\tCPF: %s", a[i].cpf); printf("\nSaldo: %.2f\n", a[i].saldo); } somando(&soma, &saldo); printf("\nSoma: %.2f\n", soma); }
  8. Vou precisar fazer uma passagem por referencia?
  9. O resultado fica assim, ele não soma os saldos.
  10. @Leonardo0308 Eu tentei mudar aqui, mas dá no mesmo, ela só retorna o valor do ultimo saldo, olha como ficou. void somando(struct lista a[], int *p){ int i; float soma = 0; for (i = 0; i < *p; i++){ a[i].soma = a[i].soma + a[i].saldo; } return somando; }
  11. Boa tarde pessoal, estou tentando fazer a minha função "somando" calcular o saldo total de todos os clientes cadastrados nesse exercício de programação, mas ela só me retorna o ultimo saldo cadastrado, onde será que eu estou errando? #include<stdio.h> struct lista{ char nome[50], rua[50], cpf[11]; int num; float saldo, soma; }; const int MAX = 50; int menu(){ int op; printf("\n\tMENU\n"); printf("\n1. Incluir\n"); printf("2. Imprimir\n"); printf("0. Sair\n"); printf("\nSelecione uma opcao -> "); scanf("%d", &op); return op; } void incluir(struct lista a[], int *p){ if(*p < MAX){ printf("\nInforme o nome: "); scanf("%s", &a[*p].nome); printf("Informe a rua: "); scanf("%s", &a[*p].rua); printf("Informe o numero da casa: "); scanf("%d", &a[*p].num); printf("Informe o CPF: "); scanf("%s", &a[*p].cpf); printf("Informe o saldo da conta: "); scanf("%f", &a[*p].saldo); (*p)++; }else printf("\n\t\tLista cheia\n"); } float somando(struct lista a[], int *p){ int i; float soma = 0; for (i = 0; i < *p; i++){ a[*p].soma = a[*p].soma + a[*p].saldo; } return soma; } void imprimir(struct lista a[], int *p){ int i; printf("\nLISTA\n"); for (i = 0; i < *p; i++){ printf("\nNome: %s", a[i].nome); printf("\nRua: %s", a[i].rua); printf("\tNumero: %d", a[i].num); printf("\tCPF: %s", a[i].cpf); printf("\nSaldo: %.2f\n", a[i].saldo); } printf("\nSoma: %.2f\n", somando); } int main(void){ struct lista lista[MAX]; int opcao, i = 0; do{ opcao = menu(); switch(opcao){ case 1: incluir(lista, &i); break; case 2: imprimir(lista, &i); break; case 0: printf("Fim\n"); break; default: printf("Opcao invalida\n"); } }while (opcao != 0); }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×