Programa em C de Vetor
#include
#pragma pack(1)
typedef struct{ char descricao[200]; unsigned int codigo; double quantidade; double preco;
}Produto;
typedef struct{ unsigned int codigo; double precoMin,precoMax,total;
}Saida;
/* Procedimento criar o vetor de com dados de saida */ void vetorSaida(Produto leitura,Saida *vetor, int *pos){
int i,aux;
aux = -1;
/* Verificando se o codigo ja existe no vetor */ for(i=0;i < *pos;i++) if(vetor[i].codigo == leitura.codigo) aux = i;
/* Caso nao exista adiciona ao vetor na posicao pos */ if(aux == -1){ vetor[*pos].codigo = leitura.codigo; vetor[*pos].precoMin = leitura.preco; vetor[*pos].precoMax = leitura.preco; vetor[*pos].total = leitura.preco * leitura.quantidade; *pos = *pos + 1; } /* Caso exista atualiza os dados na posicao aux */ else { if(leitura.preco < vetor[aux].precoMin) vetor[aux].precoMin = leitura.preco; if(leitura.preco > vetor[aux].precoMax) vetor[aux].precoMax = leitura.preco;
vetor[aux].total = vetor[aux].total + leitura.preco * leitura.quantidade; }
}
/* Procedimento para escrever a saida */ void escrevaSaida(Saida *vetor,int n){ int i,j; Saida aux;
/* Colocando o vetor em ordem crescente de acordo com o codigo */ for(i=0; i < n;i++) for(j=0;j < n; j++) if(vetor[i].codigo < vetor[j].codigo){ aux = vetor[i]; vetor[i] = vetor[j]; vetor[j] = aux; }
/* Imprimindo resultados na tela */ for(i=0;i < n;i++) printf("%d,%.2f,%.2f,%.2f\n",vetor[i].codigo,vetor[i].precoMin ,vetor[i].precoMax,vetor[i].total);
}
int main(int argc,char *argv[]){
int posicao; FILE *entrada; Produto leitura; Saida prod[1000]; posicao = 0;
/* Abrindo arquivo */ entrada=fopen(argv[1],"r"); /*Verificando se o arquivo foi