Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lourrane Santos

Alguem Me Ajuda A Resolver Esse Errinho?

Recommended Posts

Olá, Eu Preciso criar um codigo para cadastrar 20 clientes em um posto de gasolina, e depois fazer a somatoria de quanto gastou
Minha duvida é a seguinte, eu coloquei pra cadastrar só 20, mas, antes de fazer a somatoria, aparece um 21° pra eu digitar o combustivel utilizado e   quantos litros, eu gostaria de saber o que eu tenho que mudar, pra esse 21° não aparecer, e após cadastrar o ultimo 20°, ele somar tudo de uma vez já...
Grata desde já
 

#include <cstdio>
#include <string.h>
#include <iostream>
#include <conio.h>
int main(){	
	int i, VETOR_A[100], Cont=0;
	char   VETOR_B[100], Op= 'S', Aux[10];
	float  VETOR_C[100], PRECO , SOMA=0;
	do{
		printf("\nCLIENTE %d:\n\n", Cont+1);
		printf("DIGITE O COMBUSTIVEL UTILIZADO:\n \n= G =  GASOLINA - R$ 4,49\n= E =  ETANOL  	- R$ 2,69\n= D =  DIESEL 	- R$ 3,39\n\n");
		do{
			fflush(stdin);
			scanf  ("%c", &VETOR_B[Cont]);
			if     (toupper(VETOR_B[Cont])=='G'){strcpy(Aux,"GASOLINA"); PRECO=4.49; Op= 'p';}
			else if(toupper(VETOR_B[Cont])=='E'){strcpy(Aux,"ETANOL"  ); PRECO=2.69; Op= 'p';}
			else if(toupper(VETOR_B[Cont])=='D'){strcpy(Aux,"DIESEL"  ); PRECO=3.39; Op= 'p';}	
			else   {printf("COMBUSTIVEL NAO CADASTRADO, SO E PERMITIDO OS TRES COMBUSTIVEIS CADASTRADO NO SISTEMA\n"); }
		}while     (Op != 'p');
		do{
			printf ("\nDIGITE O TOTAL DE LITROS%S ABASTECIDO: ", Aux);
			fflush (stdin);
			scanf  ("%d", &VETOR_A[Cont]);
			if	   (VETOR_A[Cont] >=0){
				   VETOR_C[Cont] = (float)VETOR_A[Cont] * PRECO;
			}		
			else{
				printf("NAO PODE EXISTIR VALOR NEGATIVO...!\n");
			}
		}while(VETOR_A[Cont] < 0);
        if(Cont < 20)Cont++;
        else {
             getch();
             Op='N';
        }
    }while(toupper(Op) != 'N');
	printf("\n");
	for(i=0; i<Cont; i++){
		printf("TOTAL DE LITROS ABASTECIDO: %d		COMBUSTIVEL UTILIZADO: %c		VALOR TOTAL: %2f\n",VETOR_A[i], VETOR_B[i], VETOR_C[i]);
		SOMA += VETOR_C[i];
	}
	printf("\nVALOR TOTAL ARRECADADO NO DIA -> R$ %.2f\n\n",SOMA);
	getch();
	return 0;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por THAIS DA SILVA RIBEIRO
      Prova Prática – Algoritmo
      A prova possui 3 etapas, mas se constitui de um único programa COMPLETO que deve incluir
      estas três etapas em sequência.
      Implemente o seguinte algoritmo descrito abaixo composto das seguintes tarefas:
      Etapa 1:
      O programa deve ler uma série de dados referentes aos salários de cada um dos funcionários
      de uma empresa, realizando uma operação de reajuste destes salários, de acordo com a tabela
      de reajustes indicada abaixo. O programa deve repetir a leitura dos dados de salário enquanto
      o usuário responder que deseja continuar fornecendo novos dados (ver o exemplo abaixo da
      tela de entrada de dados do programa que se deseja obter)

      Faixa Salarial (Salário Antigo) Percentual de Reajuste
      Abaixo de R$ 1.000,00 15 % (quinze por cento de reajuste)
      Entre R$ 1.000,00 e menos de R$5.000,00 10 % (quinze por cento de reajuste)
      Entre R$ 5.000,00 e menos de R$10.000,00 5 % (quinze por cento de reajuste)
      Acima de R$ 10.000,00 Sem reajuste
       
      Exemplo da tela de entrada de dados para Etapa 1:
      Digite o salario: 100
      Salario reajustado: 115.00
      Deseja informar outro salario ? (0 para sair, 1 para continuar) 1
      Digite o salario: 1000
      Salario reajustado: 1100.00
      Deseja informar outro salario ? (0 para sair, 1 para continuar) 1
      Digite o salario: 5000
      Salario reajustado: 5250.00
      Deseja informar outro salario ? (0 para sair, 1 para continuar) 1
      Digite o salario: 10000
      Salario reajustado: 10000.00
      Deseja informar outro salario ? (0 para sair, 1 para continuar) 0

      Etapa 2:
      Uma vez que os dados dos salários dos funcionários foram lidos e processados (feitos os
      reajustes e calculados os totais e valores necessários para esta nova etapa), o programa irá
      entrar no modo de exibição do relatório geral. Neste modo, o programa irá exibir na tela um
      relatório dos seguintes itens:
      - Total acumulado de salários da folha de pagamento antiga (antes do reajuste);
      - Total acumulado de salários da folha de pagamento nova (após o reajuste);
      - Média geral dos salários pagos pela empresa antes do reajuste;
      - Média geral dos salários pagos pela empresa após o reajuste;
      - Valor de acréscimo no total da folha de pagamento em função do reajuste e
      percentual de crescimento da nova folha de pagamento em relação a antiga folha de
      pagamento.
      Exemplo da tela de entrada de dados para Etapa 2: (baseada nos dados do exemplo anterior)
      == Relatorio Geral ==
      Total da folha de pagamento antiga: 16100.00
      Total da folha de pagamento nova: 16465.00
      Media de salarios antigos da empresa: 4025.00
      Media de salarios novos da empresa: 4116.25
      Acrescimo na folha de pagamento: 365.00 (acrescimo de 2.27 por cento)
      Etapa 3:
      Uma vez que os dados dos gerais do relatório de salário foram exibidos, exibir os dados
      referentes aos totais ATUAIS de funcionários em cada faixa de salário:
      - Número total de funcionários com novo salário abaixo de 1.000;
      - Número total de funcionários com novo salário entre 1.000 e menos de 5.000;
      - Número total de funcionários com novo salário entre 5.000 e menos de 10.000;
      - Número total de funcionários com novo salário a partir de 10.000;
      - Número total de funcionários da empresa.
      == Relatorio Geral ==
      Numero de funcionarios com salario abaixo de 1.000: 1
      Numero de funcionarios com salario entre 1.000 e menos de 5.000: 1
      Numero de funcionarios com salario entre 5.000 e menos de 10.000: 1
      Numero de funcionarios com salario a partir de 10.000: 1
      Total de funcionarios: 4
      Regras em relação da prova
      1. A prova é individual.
      2. É permitido consultar somente a lista de exercícios já realizados.
      3. Não é permitido o acesso à internet durante a prova.

    • Por m
      Sou iniciante em c e preciso transformar um num. romano em numero decimal mas não posso usar nenhuma biblioteca o função alem de for, while, strcmp, e if basicamente. 
    • Por yukaGoonom
      Estou montando um programa em c+ , que deveria solicitar números para uma matriz e identificar se ela é simétrica , ou não é simétrica, porém não acho erro em meu programa , se alguém puder me informar aonde estou errando , ficaria grata.
       
      #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc,char* argv[]){          int A[8][8],B[8][8];     int i,j,cont=0;          for(i=0;i<8;i++){         for(j=0;j<8;j++){             printf("Informe o elemento da linha %d da coluna %d: ",i+1,j+1);             scanf("%d", &A[j]);             B[j] = A[j];                          if(A[j]!=B[j]){                 cont++;             }         }     }     if(cont>0){         printf("\n\nA matriz nao e simetrica!!\n\n");     }else{         printf("\n\nA matriz e simetrica!!\n\n");     }          system("PAUSE");     return 0; }  
    • Por Guiibarbosaa
      Olá galera, bom dia !
       
      Estou desenvolvendo um trabalho para faculdade onde armazeno e exibo os resultados de ordenação de diversos algoritmos, sendo numero de comparações, trocas e tempo.
      Tenho tudo pronto e escrito, ou seja, o escopo do trabalho esta Ok, falta implementar o resto dos algoritmos.
       
      Consegui quase tudo com a ajuda de colegas de outro fórum, porém estou com um erro que não consigo soluciona-lo, se alguém puder me dar uma ideia do que esta acontecendo fico grato.
       
      1- Aqui eu tenho minha lista global de registros que ira armazenar os resultados de ordenação:
       
      typedef struct{
          int numcomp;
          int numtrocas = 0;
      }ESTATISTICAS;
       
      2-  Como exemplo o algoritmo bubble sort recebendo os valores por referencia:
       
      void bubbleSort(int vet[], int num, ESTATISTICAS* estatisticas){

          int i, continua, aux, fim = num;
                  do{
                      continua = 0;
              
                      for(i = 0; i < fim -1; i++ ){
                      
                          estatisticas->numcomp++;    
                          if(vet > vet[i+1]){
                              aux = vet;
                              vet = vet[i+1];
                              vet[i+1] = aux;
                              estatisticas->numtrocas++;
                              continua = 1;
                          }
                      }
                      fim--;
                  }while(continua != 0);
      }
       
       
      3- e aqui a declaração da lista e a chamada da função de ordenação com a exibição dos valores armazenados:
       
      int *ptr;
                          ptr = geraVetor(vetor1);
                          //imprimeVetor(ptr, vetor1);
                      
                              
                          ESTATISTICAS* estatisticas = (ESTATISTICAS*) malloc(sizeof(ESTATISTICAS)); 
                          
                          clock_t  start, end;
              
                          start = clock();
                          bubbleSort(ptr,vetor1, estatisticas);
                          end = clock();
                          printf("\n\nTROCAS: %d", estatisticas->numcomp);
                          printf("\n\nTROCAS: %d", estatisticas->numtrocas);
       
      4- O erro consiste em: quando compilo meu programa tudo esta ok, porém o valor retornado pela variável numcomp esta muito além do numero de comparações, se parecendo mais com um endereço de memoria. algo do tipo: 348219. Já a variável numtrocas o valor é retornado normalmente apos os incrementos ++;
       
       
      Aguardo ajuda, de já agradeço.
       
       
    • Por Fmix
      Como eu escrevo um algoritmo que forneça os números distintos de um vetor lido. Por exemplo, se o vetor lido for v = {3, 2, 1, 3, 4, 1, 5, 5, 2} o algoritmo deverá mostrar os valores 3, 2, 1, 4, 5. Considere a leitura de um vetor de 20 números inteiros.



      Na verdade ele pede para mostrar no final todos os valores do vetor mas sem repeti-los,

      Exemplo de Entrada {1,1,2,2,3,3,4,4,5,5}
      Exemplo de Saída {1,2,3,4,5}


      Obrigado!



      Código fonte feito até agora...


      #include <stdio.h>
      #include <stdlib.h>
      int main()
      {
      int A[5];
      int B[5];
      int cont1,cont2;
      cont1=0;

      while(cont1<5)
      {
      scanf("%d",&A[cont1]);
      cont1=cont1+1;
      }
      cont1=0;
      cont2=0;


      while(cont1<5){
      cont1=cont1+1;

      if (A[cont1 != B[cont2]]){
      cont2=cont2+1;
      B[cont2]= A[cont1];
      }

      }


      cont1=0;
      while(cont1<5){
      printf("%d ",B[cont1]);
      cont1=cont1+1;
      B[cont2]= A[cont1];
      }



      return 0;
      }


      /*

      B[cont2]=A[cont1];

      while(cont1<10){
      cont1=cont1+1;

      if (B[cont2] != A[cont1] ){
      cont2:cont2 +1;
      B[cont1]= A[cont1];

      }

      }

      */

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.