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);
}