Ir ao conteúdo
  • Cadastre-se

jcgs98

Membro Pleno
  • Posts

    90
  • Cadastrado em

  • Última visita

Tudo que jcgs98 postou

  1. Dada uma matriz MAT 20 x 20 contendo valores inteiros; criar funções: 1. Buscar o elemento Y em MAT e retornar posição da PRIMEIRA ocorrencia (linha e coluna). 2. Determinar se é quadrado mágico ( soma dos elementos das colunas, linhas e diagonais sejam iguais). 1) #include <stdio.h> #define LIN 20 #define COL 20 int buscar (int v, int matriz[LIN][COL]){ int i,j; for (j=0;j<LIN;j++){ for (i=0;i<COL;i++){ if (v==matriz[j][i]) return (j*COL)+i; // retorna uma valor que decomposto podemos achar posição (linha X Coluna); Formula (Linha do elemento encontrado * Total de Colunas da matriz) + Coluna do elemento encontrado. } } return -1; } int main (void){ int j, i, p, M[LIN][COL]; for (j=0;j<LIN;j++){ for (i=0;i<COL;i++){ M[j][i]=0; } } for (j=0;j<LIN;j++){ for (i=0;i<COL;i++){ M[j][i]=(j+1)*(i+1); printf("%.2i ",M[j][i]); } printf("\n",M[j][i]); } printf ("\nBuscar: "); scanf("%i",&p); if (buscar(p,M)!=-1) { printf("\nPosicao %i x %i",buscar(p,M)/COL+1,buscar(p,M)%COL+1); // Decomposição do valor retornado => Linha = (Valor/Total de Colunas) + 1 ; Coluna = (Resto de Valor/Total de Colunas) + 1. } else printf("\nNao tem!"); return 0; } 2) Usei vetores. Tem outra forma mais econômica? #include <stdio.h> #define LIN 4 #define COL 4 int qPerefeito (int matriz[LIN][COL]){ int i,j,k; int vetor[LIN]; for (j=0;j<COL;j++){//Testando Soma Das Colunas k=0; for (i=0;i<LIN;i++){ k=k+matriz[i][j]; } vetor[j]=k; if (j!=0){ if (vetor[j]!=vetor[j-1]) return -1;} } for (i=0;i<LIN;i++){//Testando Soma Das Linhas k=0; for (j=0;j<COL;j++){ k=k+matriz[i][j]; } vetor[i]=k; if (i!=0){ if (vetor[i]!=vetor[i-1]) return -1;} } //testar diagonais return 1; } int main (void){ int j, i, p, M[LIN][COL]; for (j=0;j<LIN;j++){ for (i=0;i<COL;i++){ M[j][i]=0; } } for (j=0;j<LIN;j++){ for (i=0;i<COL;i++){ M[j][i]=1; printf("%.2i ",M[j][i]); } printf("\n",M[j][i]); } if (qPerefeito (M)==1) printf("\nQuadrado Magico!"); else printf("\nQuadrado Nao Magico!"); return 0; }
  2. Implementar uma função que, dada uma string s, proceda com as seguintes ações: a. Mantém as vogais nas mesmas posições; b. Inverte a ordem das consoantes. #include <stdio.h> #define LIN 4 #define COL 4 #define VGL "aeiouAEIOU" #define CST "BCDFGHJKLMNPQRSTVWXYZbcdfghjklmnpqrstvwxyz" void funcao(char palavra[]) { int i, j; for (i = 0; palavra[i] != '\0'; i++) { for (j = 0; VGL[j] != '\0'; j++) { if (VGL[j] == palavra[i]) { palavra [i]=palavra [i]; break; } } } puts(palavra); }
  3. Como desenvolver uma função recursiva que, dado um vetor contendo Y números reais, determine o maior deles? Fiz conforme abaixo, tem um jeito mais elegante ou mais econômico? #include <stdio.h> #include <conio.h> int maior (int a, int i, int *vetor){ if (i<0){ return a; } if (vetor[i]>a){ a=vetor[i]; } return maior(a,i-1,vetor); } int main (void){ int vetor[5]={5,94,32,22,1}; printf("\nMaior: %i",maior(vetor[4],5,vetor)); return 0; } Ou invertido: #include <stdio.h> #include <conio.h> int maior (int i, int a, int *vetor){ if (i>4){ return a; } if (vetor[i]>a){ a=vetor[i]; } return maior(i+1,a,vetor); } int main (void){ int vetor[5]={5,94,32,22,1}; printf("\nMaior: %i",maior(0,vetor[4],vetor)); return 0; }
  4. Questão 2: #include <stdio.h> #define X 1000 float reajustaMultiplosretornaTotal(int numEmp, float *vetorSal, float multiplo){ float montante=0; int i; int transforma_em_inteiro1=0; int transforma_em_inteiro2=multiplo*100; for (i=0;i<numEmp;i++){ transforma_em_inteiro1=vetorSal[i]*100; if (transforma_em_inteiro1%transforma_em_inteiro2==0) montante+=(vetorSal[i]*1.1-vetorSal[i]); } return montante; } void exibeFunc (int numEmp, int *vetorInsc, float *vetorSal){ int i; for (i=0;i<numEmp;i++){ printf("\n\nFuncionario %d - Salario ..: R$ %.2f",vetorInsc[i],vetorSal[i]); } } int main (void){ int vInsc[6]={1010,1020,1030,1040,1050,1060}; float vSal[6]={1000.00,4020.00,900.00,10400.00,20000.00,1000.00}; float acrescimo; acrescimo=reajustaMultiplosretornaTotal(6,vSal,X); exibeFunc(6,vInsc,vSal); printf("\n\nAcrescimo na folha........................: R$ %.2f",acrescimo); return 0; }
  5. questão 3: #include // biblioteca usada #define x 200 // definindo uma constante. serve para nao ter que mudar em todo codigo. basta mudar aqui. void zerai (int *v, int n){ //funcao para zerar vetores composto por numeros inteiros int i; for (i=0;in;i++){ v[i]=0; } } void zeraf (float *v, int n){ //funcao para zerar vetores composto por numeros reais int i; for (i=0;in;i++){ v[i]=0; } } int busca (int *v, int n, int chv){ //funcao para buscar valores inteiros em vetor qualquer for (int i=0;in;i++){ if (v[i]==chv) return i; } return -1; } int carrega_doces (int *coddoce, int *codtipo, int n){ //funcao para carregar vetor com dados coddoce[0]=203;codtipo[0]=1; coddoce[1]=120;codtipo[1]=3; coddoce[2]=340;codtipo[2]=1; coddoce[3]=220;codtipo[3]=7; return 4; } int carrega_tipos (float *pesomin, float *pesomax){ //funcao para carregar vetor com dados pesomin[0]=2.0;pesomax[0]=2.4; pesomin[1]=1.2;pesomax[1]=2.0; pesomin[2]=3.4;pesomax[2]=3.8; pesomin[3]=9.3;pesomax[3]=9.8; pesomin[4]=6.0;pesomax[4]=6.4; pesomin[5]=3.1;pesomax[5]=3.2; pesomin[6]=4.6;pesomax[6]=4.8; } int main (void){ //funcao principal int i,doce=0,d=0,cod=0,qtd=0,loj=0; //definindo e zerando variaveis inteiras float peso=0; //definindo e zerando variaveis reais int vdoce[4],vtipo[4],docedigitado[x],tipodigitado[x],vtot[x]; //definindo variaveis vetores para numeros inteiros float pesodoce[x],pmax[7],pmin[7]; //definindo variaveis vetores para numeros reais zerai (vdoce,4); // usando funcao definida no inicio para zerar vetor zerai (vtipo,4); // usando funcao definida no inicio para zerar vetor zeraf (pmax,7); // usando funcao definida no inicio para zerar vetor zeraf (pmin,7); // usando funcao definida no inicio para zerar vetor zerai (docedigitado,x); // usando funcao definida no inicio para zerar vetor zerai (tipodigitado,x); // usando funcao definida no inicio para zerar vetor zerai (vtot,4); // usando funcao definida no inicio para zerar vetor carrega_doces (vdoce,vtipo,4); // usando funcao definida no inicio para preencher vetor carrega_tipos (pmin,pmax); // usando funcao definida no inicio para preencher vetor for(i=0;ix;i++){ //criando laco principal do codigo do{ // inicio do laco auxiliar que verifica se codigo digitado existe printf("\ncodigo do doce %d..........: ",d+1); scanf("%d",&doce); }while (doce>0&&busca(vdoce,4,doce)==-1); if (doce0) break; // condicional que verifica se o codigo e menor que zera (termina entrada de dados) d++; // adiciona 1 a variavel "d" em cada passagem do laco docedigitado[i]=busca(vdoce,4,doce); // vetor preenchido com cada posicao referente ao "i" da passagem do laco tipodigitado[i]=vtipo[busca(vdoce,4,doce)]; // idem printf("\npeso do doce %d..........: ",d+1); scanf("%f",&peso); pesodoce[i]=peso; } for (i=0;id;i++){ if ((pesodoce[i]pmin[tipodigitado[i]-1])||(pesodoce[i]>pmax[tipodigitado[i]-1])) vtot[docedigitado[i]]++; } for (i=0;i4;i++){ printf("\nquantidade de doces do tipo %d fora do padrão....: %d",vdoce[i],vtot[i]); } return 0; } adicionado 34 minutos depois Questão 1: #include <stdio.h> void encontraMinMax (float *valorMin, float *valorMax) { int i, j; float dolar,maior=0, menor=0; for (j=0;j<4;j++){ for (i=0;i<7;i++){ printf("\nDigite a cotacao do Dolar do dia %d da semana %d: ",i+1,j+1); scanf("%f",&dolar); if (dolar>=maior) maior=dolar; if (dolar<=menor||menor==0) menor=dolar; } } *valorMin=menor; *valorMax=maior; } int main(void){ float maior,menor; encontraMinMax (&menor,&maior); printf("\nMaior cotacao do Dolar no mes....: R$ %.2f",maior); printf("\nMenor cotacao do Dolar no mes....: R$ %.2f",menor); return 0; }
  6. do{ printf("\nCodigo do produto %d.............: ",d+1); scanf("%d",&produto); }while (produto>0&&busca(vPro,4,produto)==-1); if (produto<0) break; d++;
  7. #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 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 *codPro, float *valPro, int n){ codPro[0]=203;valPro[0]=10.0; codPro[1]=120;valPro[1]=03.0; codPro[2]=340;valPro[2]=25.0; codPro[3]=8 ;valPro[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 *impEstado){ impEstado[0]=2.0; impEstado[1]=1.2; impEstado[2]=3.4; impEstado[3]=9.3; impEstado[4]=6.0; impEstado[5]=3.1; } int main (void){ int i,d=0,cod=0,qtd=0,loj=0; int produto=0,quantidade=0; float imposto=0,valor=0; int vlojas [X],vPro[4],vLoj[10],vCod[10],lojaDigitada[X]; float vTot[X],vVal[4],vImp[6],valorSemImposto[X]; zeraI (vPro,4); zeraF (vVal,4); zeraI (vlojas,X); zeraF (vTot,X); 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++){ do{ printf("\nCodigo do produto %d.............: ",d+1); scanf("%d",&produto); }while (produto>0&&busca(vPro,4,produto)==-1); if (produto<0) break; d++; valor=vVal[busca(vPro,4,produto)]; printf("\nQuantidade......................:"); scanf("%d",&quantidade); do{ printf("\nLoja............................:"); scanf("%d",&lojaDigitada[i]); }while (busca(vLoj,10,lojaDigitada[i])==-1); imposto=vImp[vCod[busca(vLoj,10,lojaDigitada[i])]-1]; valorSemImposto[i]=(valor*quantidade)/(1+(imposto/100)); } for (i=0;i<d;i++){ vlojas [i]=busca(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; }
  8. 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).
  9. @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?
  10. @Flávio Pedroza Resolvi tudo menos isso: adicionado 1 minuto depois Resolvi:] for (i=0;i<10;i++) { printf("\nFaturamento liquido da loja %2d..: R$ %.2f",vLoj[i],vTot[i]); } return 0;
  11. #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.
  12. 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!
  13. Alguém? https://www.clubedohardware.com.br/forums/topic/1353072-operação-com-vetores-condicional-operadores-lógicos-faeterj-fac-av2-2017/
  14. Esse eu cansei só de tentar começar: https://www.clubedohardware.com.br/forums/topic/1353072-operação-com-vetores-condicional-operadores-lógicos-faeterj-fac-av2-2017/
  15. Esse eu cansei só de tentar começar: https://www.clubedohardware.com.br/forums/topic/1353072-operação-com-vetores-condicional-operadores-lógicos-faeterj-fac-av2-2017/
  16. 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; }
  17. Isso. Dei mole. adicionado 2 minutos depois @Flávio Pedroza
  18. Perfeito! Esse eu acho que peguei o jeito: #include <stdio.h> float encontraMenor(int numEmp, float *vetorSal){ int menorSal=vetorSal[0],i; for (i=0;i<numEmp;i++){ if (menorSal>vetorSal[i]) menorSal=vetorSal[i]; } return menorSal; } float exibeDifMenorRetornaSoma (float vMenorSal, int numEmp, int *vetorInsc, float *vetorSal){ int i; float somaDif; for (i=0;i<numEmp;i++){ printf("\n\nFuncionario %d - Diferenca do salario ..: R$ %.2f",vetorInsc[i],vetorSal[i]-vMenorSal); somaDif=somaDif+(vetorSal[i]-vMenorSal); } printf("\n\nSoma das diferencas .......................: R$ %.2f",somaDif); } int main (void){ int vInsc[6]={1010,1020,1030,1040,1050,1060}; float vSal[6]={1000.00,4020.00,900.00,10400.00,20000.00,1000.00}; float menorSal; menorSal=encontraMenor(6,vSal); printf("\n\nO menor salario e ........................: R$ %.2f",menorSal); exibeDifMenorRetornaSoma (menorSal, 6, vInsc, vSal); return 0; }
  19. Bom dia. Minha dúvida está na função. Teria outra maneira de verificar os números digitados sem ter que repetir o "while"? #include <stdio.h> int encontraDoisVals (int limInf, int limSup, int *dig1, int *dig2){ int n1,n2; printf("\nDigite um valor inteiro.......................: "); scanf("%d",&n1); while (n1>limInf&&n1<limSup){ printf("\nDigite um valor inteiro.......................: "); scanf("%d",&n1); } *dig1=n1; printf("\nDigite um valor inteiro.......................: "); scanf("%d",&n2); while (n2>limInf&&n2<limSup){ printf("\nDigite um valor inteiro.......................: "); scanf("%d",&n2); } *dig2=n2; } int main(void){ int limI, limS, dig1, dig2; int soma; int i; printf("\nDigite o limite inferior......................: "); scanf("%d",&limI); printf("\nDigite o limite superior......................: "); scanf("%d",&limS); encontraDoisVals (limI, limS, &dig1, &dig2); soma=dig1+dig2; printf("\nSoma dos valores digitado fora do intervalo...: %d",soma); return 0; } adicionado 5 minutos depois Função é "void" não 'int".
  20. Entendi, mas a função "exibeDiferencaAB" só pode receber 2 vetores. adicionado 5 minutos depois Não entendi os "n". Na verdade entendi, mas não a necessidade. Apenas para organização?
  21. @Flávio Pedroza adicionado 2 minutos depois @isrnick Pode ver esse também?

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!