Ir ao conteúdo

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


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

Posts recomendados

Postado

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
Postado

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

  • Solução
Postado

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
Postado

@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?

Postado

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
Postado

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

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!