Ir para conteúdo
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

Crie uma conta ou entre para comentar

Você precisar ser um membro 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

  • Conteúdo Similar

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