Ir ao conteúdo
  • Cadastre-se

C operação com vetores. condicional. operadores lógicos. faeterj. fac. av2. 2017.


jcgs98
Ir à solução Resolvido por Flávio Pedroza,

Posts recomendados

Boa tarde!

 

Essa tá f...

 

Comecei assim:

 

#include <stdio.h>

#define X 200

void zera (float *v, int n){
	int i;
	for (i=0;i<n;i++){
	v[i]=0;
	}
}


int busca (int *v, int n, int chv){
	for (int i=0;i<n;i++){
		if (v[i]==chv) return i;
		}
	return -1;
}


int carrega_prods (int *v1, float *v2, int n){
	v1[0]=203; v2[0]=10.0; v1[1]=120; v2[1]=3.0; v1[2]=340; v2[2]=25.0; v1[3]=220; v2[3]=70.0; return 4;
}
	

int carrega_lojas (int *v1, int *v2, int n){
	v1[0]=20; v2[0]=1; v1[1]=8; v2[1]=2; v1[2]=34; v2[2]=2; v1[3]=22; v2[3]=5; v1[4]=14; v2[4]=3;v1[5]=52; v2[5]=4;
	v1[6]=16; v2[6]=6;v1[7]=55; v2[7]=4;v1[8]=41; v2[8]=5;v1[9]=28; v2[9]=6;
}


int carrega_est (float *v1){
	v1[0]=2.0; v1[1]=1.2; v1[2]=3.4; v1[3]=9.3; v1[4]=6.0; v1[5]=3.1;
}

int main (void){
	
	int i, cod, qtd, loj;
	
	int vPro[4], vLoj[10], vCod[10];
	
	float vVal[4],vImp[6];
	
	zera (vPro,4);
	zera (vVal,4);
	
	zera (vLoj,10);
	zera (vCod,10);
	
	zera (vImp,6);
	
	carrega_prods (&vPro,&vVal,4);

	carrega_lojas (&vLoj,&vEst,10);

	carrega_est (&vImp);
	
	printf("\nCodigo do produto....:");
	scanf("%d",&cod);
	
	while (cod>=0&&i<X){
		for (i=0;i<X;i++){
		busca (vPro, 4, cod);										
		
		printf("\nQuantidade...........:");
		scanf("%d",&qtd);
		
		printf("\nLoja.................:");
		scanf("%d",&loj);
		
		printf("\nCodigo do produto....:");
		scanf("%d",&cod);
		}
	}
	
	



return 0;
}

 

2017_q3.PNG

  • Amei 1
Link para o comentário
Compartilhar em outros sites

Acredito que esta solução está funcionando. Basta você adicionar a implementa para tratamento de códigos inexistentes (quando busca retornar <0). Atente também para o fato da função "zera" aceitar apenas vetores do tipo float. Portanto, não pode usá-la para vetores do tipo int;

int main (void){
	
	int i, cod, qtd, loj;
	
	int vPro[4], vLoj[10], vCod[10], vEst[10];
	
	float vVal[4],vImp[6];
	
	//zera (vPro,4);
	zera (vVal,4);
	
	//zera (vLoj,10);
	//zera (vCod,10);
	
	zera (vImp,6);
	
	carrega_prods (vPro,vVal,4);

	carrega_lojas (vLoj,vEst,10);

	carrega_est (vImp);

    
	while (1)
	{
	    printf("\nCodigo do produto....:");
		scanf("%d",&cod);
		
        if (cod < 0) break;
        i = busca (vPro, 4, cod);	
		float preco = vVal[i]; //Preco do produto
		printf ("\nPreco:%f", preco);
		
	    printf("\nQuantidade...........:");
		scanf("%d",&qtd);
		
		printf("\nLoja.................:");
		scanf("%d",&loj);
		i = busca (vLoj, 10, loj);
		printf ("\nLoja:%d", vLoj[i]);
		
		float imposto =  vImp[vEst[i]-1]; // imposto
		printf ("\nImposto:%f", imposto);
		float faturamento = preco*qtd * (1 - (imposto/100));
		printf ("\nFaturamento.......:%f", faturamento);
	}
	
	



return 0;
}

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

14 horas atrás, Flávio Pedroza disse:

Acredito que esta solução está funcionando. Basta você adicionar a implementa para tratamento de códigos inexistentes (quando busca retornar <0). Atente também para o fato da função "zera" aceitar apenas vetores do tipo float. Portanto, não pode usá-la para vetores do tipo int;


int main (void){
	
	int i, cod, qtd, loj;
	
	int vPro[4], vLoj[10], vCod[10], vEst[10];
	
	float vVal[4],vImp[6];
	
	//zera (vPro,4);
	zera (vVal,4);
	
	//zera (vLoj,10);
	//zera (vCod,10);
	
	zera (vImp,6);
	
	carrega_prods (vPro,vVal,4);

	carrega_lojas (vLoj,vEst,10);

	carrega_est (vImp);

    
	while (1)
	{
	    printf("\nCodigo do produto....:");
		scanf("%d",&cod);
		
        if (cod < 0) break;
        i = busca (vPro, 4, cod);	
		float preco = vVal[i]; //Preco do produto
		printf ("\nPreco:%f", preco);
		
	    printf("\nQuantidade...........:");
		scanf("%d",&qtd);
		
		printf("\nLoja.................:");
		scanf("%d",&loj);
		i = busca (vLoj, 10, loj);
		printf ("\nLoja:%d", vLoj[i]);
		
		float imposto =  vImp[vEst[i]-1]; // imposto
		printf ("\nImposto:%f", imposto);
		float faturamento = preco*qtd * (1 - (imposto/100));
		printf ("\nFaturamento.......:%f", faturamento);
	}
	
	



return 0;
}

 

Eu modifiquei para aceitar float e int, fiz zeraI e zeraF;

 

Não poderia usar o "while(1)" porque no enunciado o número de entradas é limitado em 200.

 

Obrigado pela ajuda!

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

#include <stdio.h>

#define X 200

void zeraI (int *v, int n){
	int i;
	for (i=0;i<n;i++){
	v[i]=0;
	}
}

void zeraF (float *v, int n){
	int i;
	for (i=0;i<n;i++){
	v[i]=0;
	}
}


int buscaI (int *v, int n, int chv){
	for (int i=0;i<n;i++){
		if (v[i]==chv) return i;
		}
	return -1;
}


float buscaF (float *v, int n, int chv){
	for (int i=0;i<n;i++){
		if (v[i]==chv) return i;
		}
	return -1;
}

int buscaI_ (int *v, int n, int chv){
	for (int i=0;i<n;i++){
		if (v[i]==chv) return v[i];
		}
	return -1;
}


float buscaF_ (float *v, int n, int chv){
	for (int i=0;i<n;i++){
		if (v[i]==chv) return v[i];
		}
	return -1;
}


int carrega_prods (int *v1, float *v2, int n){
	v1[0]=203;v2[0]=110.0;
	v1[1]=120;v2[1]=03.0;
	v1[2]=340;v2[2]=25.0;
	v1[3]=220;v2[3]=70.0;
	return 4;
}
	

int carrega_lojas (int *v1, int *v2, int n){
	v1[0]=20;v2[0]=1; 
	v1[1]=8	;v2[1]=2;
	v1[2]=34;v2[2]=2;
	v1[3]=22;v2[3]=5;
	v1[4]=14;v2[4]=3;
	v1[5]=52;v2[5]=4;
	v1[6]=16;v2[6]=6;
	v1[7]=55;v2[7]=4;
	v1[8]=41;v2[8]=5;
	v1[9]=28;v2[9]=6;
}


int carrega_est (float *v1){
	v1[0]=10.0;
	v1[1]=1.2;
	v1[2]=3.4;
	v1[3]=9.3;
	v1[4]=6.0;
	v1[5]=3.1;
}

int main (void){
	
	int i, cod, qtd, loj,z;
	
	int produto,quantidade;
	float c, d, imposto, valor;
	
	int vPro[4], vLoj[10], vCod[10],viAuxa[X],viAuxb[X],viAuxc[X];
	
	float vVal[4],vImp[6],fat[10],vfAuxb[X],vfAuxa[X];
	
	zeraI (vPro,4);
	zeraF (vVal,4);
	
	zeraF (vfAuxa,X);
	zeraF (vfAuxb,X);
	zeraI (viAuxa,X);
	zeraI (viAuxb,X);
	zeraI (viAuxc,X);
	
	zeraF (fat,10);
	
	zeraI (vLoj,10);
	zeraI (vCod,10);
	
	zeraF (vImp,6);
	
	carrega_prods (vPro,vVal,4);

	carrega_lojas (vLoj,vCod,10);

	carrega_est (vImp);
	
	for (i=0;i<10;i++){
		printf("\nLoja.....: %3d / Estado...: %d / Imposto..: %.2f",vLoj[i],vCod[i],vImp[vCod[i]-1]);
	}
	
	for (i=0;i<4;i++){
		printf("\nProduto..: %d / Valor....: R$%.2f",vPro[i],vVal[i]);
	}
	
	for(i=0;i<X;i++)
	{	
	printf("\n\n\nCodigo do produto...............: ");
	scanf("%d",&produto);
	valor=vVal[buscaI(vPro,4,produto)];
	printf("\nValor do produto................: R$ %.2f",valor);
						
	printf("\nQuantidade......................:");
	scanf("%d",&quantidade);
	printf("\nValor da compra ................: R$ %.2f",valor*quantidade);
	
		
	printf("\nLoja............................:");
	scanf("%d",&viAuxc[i]);
	
	imposto=vImp[vCod[buscaI(vLoj,10,viAuxc[i])]-1];
	
	printf("\nValor do Imposto no estado %d...: %.2f",buscaI_(vLoj,10,viAuxc[i]),imposto);
	
	c=(valor*quantidade)/(1+(imposto/100));
	
	printf("\nValor sem imposto...............: %.2f",c);
	vfAuxa[i]=c;
	}
	
	for(i=0;i<X;i++){
		
		printf("\nLoja: %d / Total: %.2f",viAuxc[i],vfAuxa[i]);
	}

	
	int vlojas [10];
	float vTot[10];

	for (i=0;i<10;i++)
	{
		vTot[i]=0;
		vlojas [i]=0;
	}

	for (i=0;i<X;i++){
		vlojas [i]=buscaI(vLoj,X,viAuxc[i]);
	}
	
	
	for (i=0;i<10;i++)
	{
		if (vfAuxa[i]!=0)
		vTot[vlojas[i]]+=vfAuxa[i];
	}

	for (i=0;i<10;i++)
	{
		printf("\nFaturamento liquido da loja %d..: R$ %.2f",vlojas [i],vTot[i]);
	}

	return 0;
}

Não está funcionando a totalização.

Link para o comentário
Compartilhar em outros sites

  • Solução

você definiu X como 200, sendo que o vetore vLoj e vlojas só têm dez elementos.

          
 for (i=0;i<X;i++){
		vlojas [i]=buscaI(vLoj,X,viAuxc[i]);
	}

Tem que resolver isso.

 

Coloque também a lógica para quebrar o laço caso o código seja menor que zero, conforme solicitado no enunciado:

for(i=0;i<X;i++)
	{	
	printf("\n\n\nCodigo do produto...............: ");
	scanf("%d",&produto);
    if (produto < 0) break;

Testei com cinco elementos e funcionou:


Loja.....:  20 / Estado...: 1 / Imposto..: 10.00
Loja.....:   8 / Estado...: 2 / Imposto..: 1.20
Loja.....:  34 / Estado...: 2 / Imposto..: 1.20
Loja.....:  22 / Estado...: 5 / Imposto..: 6.00
Loja.....:  14 / Estado...: 3 / Imposto..: 3.40
Loja.....:  52 / Estado...: 4 / Imposto..: 9.30
Loja.....:  16 / Estado...: 6 / Imposto..: 3.10
Loja.....:  55 / Estado...: 4 / Imposto..: 9.30
Loja.....:  41 / Estado...: 5 / Imposto..: 6.00
Loja.....:  28 / Estado...: 6 / Imposto..: 3.10
Produto..: 203 / Valor....: R$110.00
Produto..: 120 / Valor....: R$3.00
Produto..: 340 / Valor....: R$25.00
Produto..: 220 / Valor....: R$70.00


Codigo do produto...............: 203

Valor do produto................: R$ 110.00
Quantidade......................:100

Valor da compra ................: R$ 11000.00
Loja............................:20

Valor do Imposto no estado 20...: 10.00
Valor sem imposto...............: 10000.00


Codigo do produto...............: 203

Valor do produto................: R$ 110.00
Quantidade......................:100

Valor da compra ................: R$ 11000.00
Loja............................:20

Valor do Imposto no estado 20...: 10.00
Valor sem imposto...............: 10000.00


Codigo do produto...............: 203

Valor do produto................: R$ 110.00
Quantidade......................:100

Valor da compra ................: R$ 11000.00
Loja............................:9 8

Valor do Imposto no estado 8...: 1.20
Valor sem imposto...............: 10869.57


Codigo do produto...............: 120

Valor do produto................: R$ 3.00
Quantidade......................:100

Valor da compra ................: R$ 300.00
Loja............................:8

Valor do Imposto no estado 8...: 1.20
Valor sem imposto...............: 296.44


Codigo do produto...............: 203

Valor do produto................: R$ 110.00
Quantidade......................:100

Valor da compra ................: R$ 11000.00
Loja............................:8

Valor do Imposto no estado 8...: 1.20
Valor sem imposto...............: 10869.57
Loja: 20 / Total: 10000.00
Loja: 20 / Total: 10000.00
Loja: 8 / Total: 10869.57
Loja: 8 / Total: 296.44
Loja: 8 / Total: 10869.57
Faturamento liquido da loja 0..: R$ 20000.00
Faturamento liquido da loja 0..: R$ 22035.57
Faturamento liquido da loja 1..: R$ 0.00
Faturamento liquido da loja 1..: R$ 0.00
Faturamento liquido da loja 1..: R$ 0.00
Faturamento liquido da loja -1..: R$ 0.00
Faturamento liquido da loja -1..: R$ 0.00
Faturamento liquido da loja -1..: R$ 0.00
Faturamento liquido da loja -1..: R$ 0.00
Faturamento liquido da loja -1..: R$ 0.00

Apenas tem um pequeno erro na hora de imprimir o resultado, mas se você somar verá estão corretos os resultados. Tenta resolver, se não conseguir posta aqui.

Quando tento mais de 10 elementos, dá erro de segmentação.

 

 

 

 

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Flávio Pedroza

#include <stdio.h>

#define X 200

void zeraI (int *v, int n){
	int i;
	for (i=0;i<n;i++){
	v[i]=0;
	}
}

void zeraF (float *v, int n){
	int i;
	for (i=0;i<n;i++){
	v[i]=0;
	}
}


int buscaI (int *v, int n, int chv){
	for (int i=0;i<n;i++){
		if (v[i]==chv) return i;
		}
	return -1;
}

int carrega_prods (int *v1, float *v2, int n){
	v1[0]=203;v2[0]=10.0;
	v1[1]=120;v2[1]=03.0;
	v1[2]=340;v2[2]=25.0;
	v1[3]=220;v2[3]=70.0;
	return 4;
}
	

int carrega_lojas (int *v1, int *v2, int n){
	v1[0]=20;v2[0]=1; 
	v1[1]=8	;v2[1]=2;
	v1[2]=34;v2[2]=2;
	v1[3]=22;v2[3]=5;
	v1[4]=14;v2[4]=3;
	v1[5]=52;v2[5]=4;
	v1[6]=16;v2[6]=6;
	v1[7]=55;v2[7]=4;
	v1[8]=41;v2[8]=5;
	v1[9]=28;v2[9]=6;
}


int carrega_est (float *v1){
	v1[0]=2.0;
	v1[1]=1.2;
	v1[2]=3.4;
	v1[3]=9.3;
	v1[4]=6.0;
	v1[5]=3.1;
}

int main (void){
	
	int i, cod, qtd, loj,z;
	
	int produto,quantidade;
	float c, d, imposto, valor;
	
	int vPro[4], vLoj[10], vCod[10],lojaDigitada[X];
	
	float vVal[4],vImp[6],fat[10],valorSemImposto[X];
	
	zeraI (vPro,4);
	zeraF (vVal,4);
	
	zeraF (valorSemImposto,X);
	zeraI (lojaDigitada,X);
	
	zeraI (vLoj,10);
	zeraI (vCod,10);
	
	zeraF (vImp,6);
	
	carrega_prods (vPro,vVal,4);

	carrega_lojas (vLoj,vCod,10);

	carrega_est (vImp);
	

	for(i=0;i<X;i++){	
	printf("\n\n\nCodigo do produto...............: ");
	scanf("%d",&produto);
	if (produto<0) break;
	
	valor=vVal[buscaI(vPro,4,produto)];
	
	printf("\nQuantidade......................:");
	scanf("%d",&quantidade);
		
	printf("\nLoja............................:");
	scanf("%d",&lojaDigitada[i]);
	
	imposto=vImp[vCod[buscaI(vLoj,10,lojaDigitada[i])]-1];
			
	valorSemImposto[i]=(valor*quantidade)/(1+(imposto/100));
	}
	
	int vlojas [10];
	float vTot[10];
	
	for (i=0;i<10;i++){
		vTot[i]=0;
		vlojas [i]=0;
	}

	for (i=0;i<10;i++){
		vlojas [i]=buscaI(vLoj,10,lojaDigitada[i]);
	}
		
	for (i=0;i<10;i++){
		vTot[vlojas[i]]+=valorSemImposto[i];
	}

	for (i=0;i<10;i++){
		printf("\nFaturamento liquido da loja %2d..: R$ %.2f",vLoj[i],vTot[i]);
	}

	return 0;
}

 

 

Se eu fosse levar esse tempo todo para resolver 1 questão dessa prova... quando eu fiz essa prova deixei essa em branco.

adicionado 4 minutos depois

@isrnick

@Leonardo0308

Alguma dica?

Link para o comentário
Compartilhar em outros sites

você testou com +10 elementos? Eu acho que ainda há erro quando você digita mais de 10 elementos. Testa aí e confirmar.

Se for esse o caso, a possível solução seria somar o faturamento já dentro do laço principal, algo assim:

float vTot[10];
	
	for (i=0;i<10;i++){
		vTot[i]=0;
	}
                        
for(i=0;i<X;i++){	
	printf("\n\n\nCodigo do produto...............: ");
	scanf("%d",&produto);
	if (produto<0) break;
	
	valor=vVal[buscaI(vPro,4,produto)];
	
	printf("\nQuantidade......................:");
	scanf("%d",&quantidade);
		
	printf("\nLoja............................:");
	scanf("%d",&lojaDigitada[i]);
	int indice = buscaI(vLoj,10,lojaDigitada[i]);
	imposto=vImp[vCod[indice]-1];
	valorSemImposto[i]=(valor*quantidade)/(1+(imposto/100));
	vTot[indice]+=valorSemImposto[i]; // SOMAR AQUI
	}
	
		for (i=0;i<10;i++){
		printf("\nFaturamento liquido da loja %2d..: R$ %.2f",vLoj[i],vTot[i]);
	}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

realmente estava errado com mais de 10

 

sua sugestão também não funcionou.

 

resolvi adicionando um contador ("d") depois do "break".

 

esse contador virou o indice:

 

#include <stdio.h>

#define X 200

void zeraI (int *v, int n){
	int i;
	for (i=0;i<n;i++){
	v[i]=0;
	}
}

void zeraF (float *v, int n){
	int i;
	for (i=0;i<n;i++){
	v[i]=0;
	}
}


int buscaI (int *v, int n, int chv){
	for (int i=0;i<n;i++){
		if (v[i]==chv) return i;
		}
	return -1;
}

int carrega_prods (int *v1, float *v2, int n){
	v1[0]=203;v2[0]=10.0;
	v1[1]=120;v2[1]=03.0;
	v1[2]=340;v2[2]=25.0;
	v1[3]=8;v2[3]=70.0;
	return 4;
}
	

int carrega_lojas (int *v1, int *v2, int n){
	v1[0]=20;v2[0]=1; 
	v1[1]=8	;v2[1]=2;
	v1[2]=34;v2[2]=2;
	v1[3]=22;v2[3]=5;
	v1[4]=14;v2[4]=3;
	v1[5]=52;v2[5]=4;
	v1[6]=16;v2[6]=6;
	v1[7]=55;v2[7]=4;
	v1[8]=41;v2[8]=5;
	v1[9]=28;v2[9]=6;
}


int carrega_est (float *v1){
	v1[0]=2.0;
	v1[1]=1.2;
	v1[2]=3.4;
	v1[3]=9.3;
	v1[4]=6.0;
	v1[5]=3.1;
}

int main (void){
	
	int i,cod,qtd,loj;
	
	int vlojas [10];
	float vTot[10];
	
	int produto=0,quantidade=0;
	float c=0, d=0, imposto=0, valor=0;
	
	int vPro[4], vLoj[10], vCod[10],lojaDigitada[X];
	
	float vVal[4],vImp[6],fat[10],valorSemImposto[X];
	
	zeraI (vPro,4);
	zeraF (vVal,4);
	
	zeraF (valorSemImposto,X);
	zeraI (lojaDigitada,X);
	
	zeraI (vLoj,10);
	zeraI (vCod,10);
	
	zeraF (vImp,6);
	
	carrega_prods (vPro,vVal,4);

	carrega_lojas (vLoj,vCod,10);

	carrega_est (vImp);
	
	for (i=0;i<10;i++){
		printf("\nLoja.....: %3d / Estado...: %d / Imposto..: %.2f",vLoj[i],vCod[i],vImp[vCod[i]-1]);
	}
	
	for (i=0;i<4;i++){
		printf("\nProduto..: %d / Valor....: R$%.2f",vPro[i],vVal[i]);
	}
	
	for(i=0;i<X;i++)
	{	
	printf("\n\n\nCodigo do produto...............: ");
	scanf("%d",&produto);
	if (produto<0) break;
	
	//
	d++;//contador usado no final do codigo para totalizacoes
	//
	//
	
	valor=vVal[buscaI(vPro,4,produto)];
	printf("\nValor do produto................: R$ %.2f",valor);
						
	printf("\nQuantidade......................:");
	scanf("%d",&quantidade);
	printf("\nValor da compra ................: R$ %.2f",valor*quantidade);
	
		
	printf("\nLoja............................:");
	scanf("%d",&lojaDigitada[i]);
	
	imposto=vImp[vCod[buscaI(vLoj,10,lojaDigitada[i])]-1];
	
	printf("\nValor do Imposto no estado %d...: %.2f",vCod[buscaI(vLoj,10,lojaDigitada[i])],imposto);
	
	c=(valor*quantidade)/(1+(imposto/100));
	
	printf("\nValor sem imposto...............: %.2f",c);
	valorSemImposto[i]=c;
	}
	
	for(i=0;i<d;i++){
		
		printf("\nLoja: %d / Total: %.2f",lojaDigitada[i],valorSemImposto[i]);
	}

	
	for (i=0;i<10;i++)
	{				
		vTot[i]=0;
		vlojas [i]=0;
	}

	for (i=0;i<d;i++){
		vlojas [i]=buscaI(vLoj,10,lojaDigitada[i]);
		printf("\n%d - %d",i,vlojas[i]);
	}
	
	
	for (i=0;i<d;i++)
	{
		vTot[vlojas[i]]+=valorSemImposto[i];
	}

	for (i=0;i<10;i++)
	{
		printf("\nFaturamento liquido da loja %2d..: R$ %.2f",vLoj[i],vTot[i]);
	}

	return 0;

 

adicionado 31 minutos depois
#include <stdio.h>

#define X 200

void zeraI (int *v, int n){
	int i;
	for (i=0;i<n;i++){
	v[i]=0;
	}
}

void zeraF (float *v, int n){
	int i;
	for (i=0;i<n;i++){
	v[i]=0;
	}
}


int buscaI (int *v, int n, int chv){
	for (int i=0;i<n;i++){
		if (v[i]==chv) return i;
		}
	return -1;
}

int carrega_prods (int *v1, float *v2, int n){
	v1[0]=203;v2[0]=10.0;
	v1[1]=120;v2[1]=03.0;
	v1[2]=340;v2[2]=25.0;
	v1[3]=8;v2[3]=70.0;
	return 4;
}
	

int carrega_lojas (int *codLoja, int *estadoLoja, int n){
	codLoja[0]=20;	estadoLoja[0]=1; 
	codLoja[1]=8;	estadoLoja[1]=2;
	codLoja[2]=34;	estadoLoja[2]=2;
	codLoja[3]=22;	estadoLoja[3]=5;
	codLoja[4]=14;	estadoLoja[4]=3;
	codLoja[5]=52;	estadoLoja[5]=4;
	codLoja[6]=16;	estadoLoja[6]=6;
	codLoja[7]=55;	estadoLoja[7]=4;
	codLoja[8]=41;	estadoLoja[8]=5;
	codLoja[9]=28;	estadoLoja[9]=6;
}


int carrega_est (float *v1){
	v1[0]=2.0;
	v1[1]=1.2;
	v1[2]=3.4;
	v1[3]=9.3;
	v1[4]=6.0;
	v1[5]=3.1;
}

int main (void){
	
	int vlojas [10];
	float vTot[10];

	int i,d=0,cod=0,qtd=0,loj=0;
	
	int produto,quantidade;
	float imposto,valor;
	
	int vPro[4], vLoj[10], vCod[10],lojaDigitada[X];
	
	float vVal[4],vImp[6],valorSemImposto[X];
	
	zeraI (vPro,4);
	zeraF (vVal,4);
	
	zeraF (valorSemImposto,X);
	zeraI (lojaDigitada,X);
	
	zeraI (vLoj,10);
	zeraI (vCod,10);
	
	zeraF (vImp,6);
	
	carrega_prods (vPro,vVal,4);

	carrega_lojas (vLoj,vCod,10);

	carrega_est (vImp);
	
	

	for(i=0;i<X;i++){	
	printf("\n\n\nCodigo do produto...............: ");
	scanf("%d",&produto);
	if (produto<0) break;
	d++;
	
	valor=vVal[buscaI(vPro,4,produto)];
	
	printf("\nQuantidade......................:");
	scanf("%d",&quantidade);
		
	printf("\nLoja............................:");
	scanf("%d",&lojaDigitada[i]);
	
	imposto=vImp[vCod[buscaI(vLoj,10,lojaDigitada[i])]-1];
			
	valorSemImposto[i]=(valor*quantidade)/(1+(imposto/100));
	}
			
	for (i=0;i<10;i++){
		vTot[i]=0;
		vlojas [i]=0;
	}

	for (i=0;i<d;i++){
		vlojas [i]=buscaI(vLoj,10,lojaDigitada[i]);
	}
		
	for (i=0;i<d;i++){
		vTot[vlojas[i]]+=valorSemImposto[i];
	}
		
	for (i=0;i<10;i++){
		printf("\nFaturamento liquido da loja %2d..: R$ %.2f",vLoj[i],vTot[i]);
	}

	return 0;
}

Código que responde o enunciado (só falta a verificação da existência do código e loja digitada).

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!