Ir ao conteúdo
  • Cadastre-se

C Verificação de consumo de energia


Noobia
Ir à solução Resolvido por vangodp,

Posts recomendados

Olá pessoal! Por favor, eu estou com uma dúvida muito grande.. Eu fiz um programa que deve calcular o quanto você deve pagar de acordo com o seu consumo de energia caso a pessoa digite ''2''. O programa funciona bem, porém, não importa qual valor ele coloque, ele sempre fala que eu devo pagar 00,00 e eu não estou conseguindo consertar esse erro! 

Explicando melhor: 

 

Faixa de consumo em KW:     R$ pagos por kW: 

0 - 30                                          0,0423

31 - 100                                      0,0725

101 - 200                                    0,1087

Acima de 200                              0,1208

 

exemplo: se a pessoa consumiu 2kw irá pagar:  0,0423 x 2  =  0,0846, pois se enquadrou na faixa 1

 

 

O Programa: 

#include <stdio.h> 
#include <stdlib.h>
#include <strng.h>
#include <locale.h>
#include <math.h>

int main ()
{
    setlocale(LC_ALL, "Portuguese");
    float Nconta, kw, Vpagar , a, b, c, d, e, f, g, Va;
    int i, num;
    char categoria, faixa, quadro;
    
    printf ("Olá! Você deseja ver os números pares de 0 a 200 ou verificar o consumo de energia?");
    printf ("\nInforme 1 para os números pares, informe 2 para o consumo de energia: ");
    scanf  (" %c", &categoria);
    
    switch (categoria)
    {
        case '1':
        
    printf ("\nOs números pares de 0 a 200 são:");
    printf ("\n2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200");


      
      break;
      
      case '2':
          
          printf ("\n\nPois bem, vamos verificar seu consumo de energia.\n");
          printf ("Precisamos saber onde você se enquadra, então, vamos começar.");
          printf ("\nIremos lhe informar a tabela de gasto e seus respectivos enquadramentos, só pra você poder se orientar melhor: ");
        printf ("\n\n0 - 30 quadro 1 ");
        printf ("\n31 - 100 quadro 2");
        printf ("\n101 - 200 quadro 3");
        printf ("\nAcima de 200 quadro 4");
        printf ("\n\nDigite o quanto você gastou: ");
        scanf ("%f", &num);
        i
      if (num = 0, num <= 30)
      {
        quadro = 0,0423 * num;
          printf ("\nVocê deverá pagar %.2f");
      }
      
      else if (num = 31, num <= 100)
    {
        
        quadro = 0,0725 * num;
          printf ("\nVocê deverá pagar %.2f");
      
    }

          else if (num = 101, num <= 200)
    {
        
        quadro = 0,1087 * num;
          printf ("\nVocê deverá pagar %.2f");
      
    }
      
         else if (num = 200, num >= 200)
    {
        
        quadro = 0,1208 * num;
          printf ("\nVocê deverá pagar %.2f");
      
    }
      
      break;
}
        
    return 0;
}
adicionado 16 minutos depois

acabei de perceber alguns erros de digitação, corrigi eles aqui (mas não o problema) 

 

#include <stdio.h> 
#include <stdlib.h>
#include <string.h>
#include <locale.h>
#include <math.h>
int main ()
{
    setlocale(LC_ALL, "Portuguese");
    float Nconta, kw, Vpagar , a, b, c, d, e, f, g, Va;
    int i, num;
    char categoria, faixa, quadro;
    
    printf ("Olá! Você deseja ver os números pares de 0 a 200 ou verificar o consumo de energia?");
    printf ("\nInforme 1 para os números pares, informe 2 para o consumo de energia: ");
    scanf  (" %c", &categoria);
    
    switch (categoria)
    {
        case '1':
        
    printf ("\nOs números pares de 0 a 200 são:");
    printf ("\n2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200");


      
      break;
      
      case '2':
          
          printf ("\n\nPois bem, vamos verificar seu consumo de energia.\n");
          printf ("Precisamos saber onde você se enquadra, então, vamos começar.");
          printf ("\nIremos lhe informar a tabela de gasto e seus respectivos enquadramentos, só pra você poder se orientar melhor: ");
        printf ("\n\n0 - 30 quadro 1 ");
        printf ("\n31 - 100 quadro 2");
        printf ("\n101 - 200 quadro 3");
        printf ("\nAcima de 200 quadro 4");
        printf ("\n\nDigite o quanto você gastou: ");
        scanf ("%f", &num);
        
      if (num = 0, num <= 30)
      {
        quadro = 0,0423 * num;
          printf ("\nVocê deverá pagar %.2f");
      }
      
      else if (num = 31, num <= 100)
    {
        
        quadro = 0,0725 * num;
          printf ("\nVocê deverá pagar %.2f");
      
    }

          else if (num = 101, num <= 200)
    {
        
        quadro = 0,1087 * num;
          printf ("\nVocê deverá pagar %.2f");
      
    }
      
         else if (num = 200, num >= 200)
    {
        
        quadro = 0,1208 * num;
          printf ("\nVocê deverá pagar %.2f");
      
    }
      
      break;
}
        
    return 0;
}

 

Link para o comentário
Compartilhar em outros sites

Ola. Seja bem-vinda.

adicionado 0 minutos depois

Antes de nada de uma olhada aqui->

 

adicionado 4 minutos depois

Isso facilita a compreensão do seu código, agilizando para todos, já que nenhum de nós recebemos $$ por ajudar, ajudamos de bom agrado. E isso também lhe ajudará a receber atenção mais rapidamente, pois se você facilitar a vida dos outros usuários, certamente vai receber ajuda mais rápido.

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

@vangodp  Muito obrigada! Sinto muito pelo transtorno 

 

#include <stdio.h> 
#include <stdlib.h>
#include <string.h>
#include <locale.h>
#include <math.h>
{
	setlocale(LC_ALL, "Portuguese");
	float Nconta, kw, Vpagar , a, b, c, d, e, f, g, Va;
	int i, num;
	char categoria, faixa, quadro;
	
	printf ("Olá! Você deseja ver os números pares de 0 a 200 ou verificar o consumo de energia?");
	printf ("\nInforme 1 para os números pares, informe 2 para o consumo de energia: ");
	scanf  (" %c", &categoria);
	
	switch (categoria)
	{
		case '1':
		
    printf ("\nOs números pares de 0 a 200 são:");
    printf ("\n2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200");


      
	  break;
      
      case '2':
      	
      	printf ("\n\nPois bem, vamos verificar seu consumo de energia.\n");
      	printf ("Precisamos saber onde você se enquadra, então, vamos começar.");
      	printf ("\nIremos lhe informar a tabela de gasto e seus respectivos enquadramentos, só pra você poder se orientar melhor: ");
        printf ("\n\n0 - 30 quadro 1 ");
        printf ("\n31 - 100 quadro 2");
        printf ("\n101 - 200 quadro 3");
        printf ("\nAcima de 200 quadro 4");
        printf ("\n\nDigite o quanto você gastou: ");
        scanf ("%f", &num);
        
      if (num == 0 && num <= 30)
      {
	    quadro = 0,0423 * num;
      	printf ("\nVocê deverá pagar %.2f",&quadro);
	  }
      
      else if (num == 31 && num <= 100)
    {
    	
	    quadro = 0,0725 * num;
      	printf ("\nVocê deverá pagar %.2f",&quadro);
	  
int main ()
	}

          else if (num == 101 && num <= 200)
    {
    	
	    quadro == 0,1087 * num;
      	printf ("\nVocê deverá pagar %.2f",&quadro);
	  
	}
      
         else if (num >= 200)
    {
    	
	    quadro == 0,1208 * num;
      	printf ("\nVocê deverá pagar %.2f", &quadro);
	  
	}
      
      break;
}
		
	return 0;
}

 

Link para o comentário
Compartilhar em outros sites

  • Solução

Não é nenhum transtorno, é que o olho agradece >_<.
Da um minutinho para analisar o seu problema.

adicionado 27 minutos depois
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
#include <math.h>

int main() {
    setlocale ( LC_ALL, "Portuguese" );
    float quadro;
    int num;
    char categoria;
    
    printf ( "Olá! Você deseja ver os números pares de 0 a 200 ou verificar o consumo de energia?" );
    printf ( "\nInforme 1 para os números pares, informe 2 para o consumo de energia: " );
    scanf ( " %c", &categoria );
    
    switch ( categoria ) {
        case '1':
            printf ( "\nOs números pares de 0 a 200 são:" );
            printf ( "\n2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200" );
            
            break;
            
        case '2':
            printf ( "\n\nPois bem, vamos verificar seu consumo de energia.\n" );
            printf ( "Precisamos saber onde você se enquadra, então, vamos começar." );
            printf ( "\nIremos lhe informar a tabela de gasto e seus respectivos enquadramentos, só pra você poder se orientar melhor: " );
            printf ( "\n\n0 - 30 quadro 1 " );
            printf ( "\n31 - 100 quadro 2" );
            printf ( "\n101 - 200 quadro 3" );
            printf ( "\nAcima de 200 quadro 4" );
            printf ( "\n\nDigite o quanto você gastou: " );
            scanf ( "%d", &num );
            
            if ( num >= 0 && num <= 30 ) { //0 - 30 = 0,0423
                quadro = 0.0423 * ( float ) num;
                printf ( "\nVocê deverá pagar %.2f", quadro );
                
            } else if ( num >= 31 && num <= 100 ) { //31 - 100 = 0,0725
                quadro = 0.0725 * ( float ) num;
                printf ( "\nVocê deverá pagar %.2f", quadro );
                
                
            } else if ( num == 101 && num <= 200 ) { // 101 - 200 = 0,1087
                quadro = 0.1087 * ( float ) num;
                printf ( "\nVocê deverá pagar %.2f", quadro );
                
            } else if ( num > 200 ) { // Acima de 200 = 0,1208
                quadro = 0.1208 * ( float ) num;
                printf ( "\nVocê deverá pagar %.2f", quadro );
                
            }
            
            break;
            
        default:
            break;
    }
    
    
    return 0;
}

Faça a prova e veja se ele rodou bem. Logo compare com o seu, se tiver duvida pergunte e diga em que partes tem maior dificuldade. Não sei se esta correto totalmente, mas se tiver dando erros avise.

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

@Noobia De passo posso explicar algumas coisas.

 

quando tiver isso:

Faixa de consumo em KW:  R$ pagos por kW: 
0 - 30                   0,0423
31 - 100                 0,0725
101 - 200                0,1087
Acima de 200             0,1208 

...E uma variável que tomará um desses valores no meio do seu programa seja pelo processo que seja e você quiser criar a condição de um if por exemplo, use sua voz, não é descabelado você programar falando com seu computador.
Se você pegar "if ( num >= 0 && num <= 30 ) {...}else{...}" e trocar todos os simbolos por palavras verá que programar é algo lógico e bem parecido a falar com o computador. Se substituir todas os simbolos por frases tipo:
if "se"
num "numero"
>= " é maior ou igual a"
0  "zero"
&&  "e"
num "numero"
<= "é menor ou igual a"
30 "trinta"
"fazer isso" -> {...}
else "senão fazer esse outro"  -> {...}

E se juntar tudo a magia acontece...
"Se"+"numero"+"é maior ou igual a "+"zero"+"e"+"numero"+"é menor ou igual a"+"trinta"+"fazer isso" -> {...}+"senão fazer esse outro"  -> {...}

Explique ao seu computador o que fazer em cada momento, todo mundo vai achar que você ta doida, e nem fazem uma ideia HAHAHAH. Brincadeirinha

 

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

@vangodp Ahh que legal isso! Eu nunca tinha pensado dessa maneira 🥺 Assim, eu já sabia a tradução das palavras e que realmente eram bem literais, mas nenhum dos meus professores nunca explicou desse jeito KAKAKAKA 
Eu nunca tinha parado pra pensar desse jeito! Você fez minha cabeça soltar uma faísca e agora parece que eu entendo as coisas de uma maneira melhor 🥳 nem ligo se me acharem doida, vou aderir e ficar falando com meu PC KKKKKKKK

 

Poxa, mas sério, obrigada de verdade :D eu não estou muito acostumada com pessoas me ajudando, e você realmente alegrou meu dia e me ajudou demais, demais! Você devia ser professor, não sei se é, mas você é incrível, cara! Obrigada! Não tenho palavras pra expressar minha gratidão por você, cara! 🤩

 

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