Somar um int com struct

Denunciar post #1
Postado agora
Olá pessoal está é minha primeira postagem aqui estou com um dificuldade que deveria ser besteira orem não estou conseguindo vamos la

criei uma struct

struct dados{
int qtd[10];
float valor[10];
char nomes[100][60];
};

depois no mais eu atribuo valores para os campos tranquilo.

depois eu fiz um metodo porque eu preciso somar todos osvalores contidos em qtd segue o metodo

void somarquantidade(){
struct dados aux;
int soma=0;
for(int contador = 0; contador<10;contador++){
soma += aux.qtd[contador];
}
printf("Quantidade total de vendas = %d \n ",soma);
}

porém quando esta vazia não me retorna nada, e depois que atribuo dados sempre me retorna o valor 48

caso alguém possa me ajudar to precisando muito entender o que esta acontecendo

Não entendi porque você apenas cria uma variável dados dentro da função, imagino que você deva mudá-la para parâmetro não?

void somarquantidade(struct dados aux) {
    ...
}

E ao chamá-la passa a struct criada e populada, aliás como você está fazendo isso?

int main(){
dados aux;
int codigo;
int quantidade;
float valore;
int l =0;
int c =0;
int menu;

do{	   
	printf("1)Cadastrar cliente\n");
    printf("2)Adicionar venda\n");
    printf("3)Relatorio\n");
    printf("4)Buscar cliente\n");
    printf("5)Sair\n");
	scanf("%d",&menu);
	switch(menu){		
    	case 1:
        	printf("---------------------------------------------------------\n");
            printf("Digite o nome do %d cliente\n",(l+1));
        	scanf("%s", &aux.nomes[l][c]);
         	aux.qtd[l] = 0;
         	aux.valor[l] = 0;
         	l++;
         	c =0;
         	printf("---------------------------------------------------------\n");
    	break;
    	case 2:
        	printf("---------------------------------------------------------\n");
        	for(int i = 0; i<l;i++){
            	printf("ID:%d | Nome:%s",i , aux.nomes[i]);
              	printf("\n");	
            }
             printf("\n");  
             printf("Digite o codigo para atribuir uma compra\n");
             scanf("%d", &codigo);
             printf("Digite a quantidade da compra\n");
             scanf("%d",&quantidade);
             printf("Digite o valor da compra\n");
             scanf("%f", &valore);
             aux.qtd[codigo] +=quantidade;
             aux.valor[codigo]+=valore;
             printf("---------------------------------------------------------\n");
     	break;
        case 3:    
             printf("---------------------------------------------------------\n");
             for(int i = 0; i<l;i++){
             	printf("ID:%d | Nome:%s | Qtd:%d | Valor:%f\n",i , aux.nomes[i], aux.qtd[i], aux.valor[i]);
              	printf("---------------------------------------------------------\n");
            }
             somarquantidade();
             printf("---------------------------------------------------------\n");
             somarvalor();
             mais1000();
             
    	break;

no case 1 eu atribuo valores a nomes e deixo qtd e valor como 0 depois no case 2 eu atribuo valores a qtd e valor

#include <string.h>
#include
#include <stdlib.h>
int sair;
int contar =0;

struct dados{
int qtd[10];
float valor[10];
char nomes[100][60];
};

struct dados somarquantidade(struct dados aux){
int soma=0;
for(int contador = 0; contador<10;contador++){
soma += aux.qtd[contador];
}
printf("Quantidade total de vendas = %d \n ",soma);
}
struct dados somarvalor(struct dados aux){

 float soma =0;
 for(int contador = 0; contador<10;contador++){
     soma += aux.valor[contador];
 }
 printf("Valor total de vendas = %f \n ",soma);    

}
struct dados mais1000(struct dados aux){

printf("---------------------------------------------------------\n");
for(int i = 0; i< 10; i++){
    if(aux.valor[i] >= 1000){
        printf("ID:%d | Nome:%s | Qtd:%d | Valor:%f\n",contar , aux.nomes[i], aux.qtd[i], aux.valor[i]);	
        printf("---------------------------------------------------------\n");
        ++contar;
}

}
printf(“Clientes que compraram mais de 1000 reais = %d” , contar);
contar=0;
printf("\n---------------------------------------------------------\n");
}

int main(){
dados aux;
int codigo;
int quantidade;
float valore;
int l =0;
int c =0;
int menu;

do{	   
	printf("1)Cadastrar cliente\n");
    printf("2)Adicionar venda\n");
    printf("3)Relatorio\n");
    printf("4)Buscar cliente\n");
    printf("5)Sair\n");
	scanf("%d",&menu);
	switch(menu){		
    	case 1:
        	printf("---------------------------------------------------------\n");
            printf("Digite o nome do %d cliente\n",(l+1));
        	scanf("%s", &aux.nomes[l][c]);
         	aux.qtd[l] = 0;
         	aux.valor[l] = 0;
         	l++;
         	c =0;
         	printf("---------------------------------------------------------\n");
    	break;
    	case 2:
        	printf("---------------------------------------------------------\n");
        	for(int i = 0; i<l;i++){
            	printf("ID:%d | Nome:%s",i , aux.nomes[i]);
              	printf("\n");	
            }
             printf("\n");  
             printf("Digite o codigo para atribuir uma compra\n");
             scanf("%d", &codigo);
             printf("Digite a quantidade da compra\n");
             scanf("%d",&quantidade);
             printf("Digite o valor da compra\n");
             scanf("%f", &valore);
             aux.qtd[codigo] +=quantidade;
             aux.valor[codigo]+=valore;
             printf("---------------------------------------------------------\n");
     	break;
        case 3:    
             printf("---------------------------------------------------------\n");
             for(int i = 0; i<l;i++){
             	printf("ID:%d | Nome:%s | Qtd:%d | Valor:%f\n",i , aux.nomes[i], aux.qtd[i], aux.valor[i]);
              	printf("---------------------------------------------------------\n");
            }
             somarquantidade(aux);
             printf("---------------------------------------------------------\n");
             somarvalor(aux);
             mais1000(aux);
             
    	break;
    	case 4:
    		char busca [0][60];
    		printf("---------------------------------------------------------\n");
    		printf("Digite o nome do cliente\n");
    		   scanf("%s", &busca[0]);
    		   printf("---------------------------------------------------------\n");
    		   for(int i=0; i<100;i++){
    		       if(!strcmp(aux.nomes[i], busca[0])){
    		       	printf("Nome:%s |Quantidade:%d |Valor:%f\n",aux.nomes[i] ,aux.qtd[i], aux.valor[i] );
    		       	break;					   
				   }else if( i == 99){
				   	printf("O nome nao esta na lista\n");
				   }					   	
				   }        		   	
			   
			   printf("---------------------------------------------------------\n");
        break;
     	case 5:
        	printf("Deseja sair do sistema? 1)Sim 2)Nao\n");
        	scanf("%d", &sair);
    	break;
    }
}while(sair !=1);

}
e assim resolvi tudo obrigado por quem tentou me ajudar