Ir para conteúdo
Fórum Script Brasil
  • 0

Pq Q O Scanf Pro Caractere ñ Tá Funcionando?


Guest Rafael Emerick

Pergunta

Guest Rafael Emerick

Q Q tá pegando q ele tá armazenando algo errado na variavel ESPECIALIDADE

alguém ae pode me ajudar??!...valeu ae!...abraço!

#include "stdio.h"
#include "stdlib.h"
main(){
int valorP,valorR,valorG,valorH,i,j,diaNumPedidos,maxDiaFaturamento,maxDiaPedido,maxPedido,maxDiaHora,pedido,teste;

char especialidade,menorFatura;

float horas,diaHoras,horasP,horasR,horasG,horasH,faturaP,faturaR,faturaG,faturaH,totalHorasP,totalHorasR,totalHorasG,totalHorasH,totalFaturaP,totalFaturaG,totalFaturaR,totalFaturaH,diaFaturamento,periodoHoras,periodoFaturamento,maxFaturamento,maxHoras,porcentHorasP,porcentHorasR,porcentHorasG,porcentHorasH;

printf("Segue abaixo o código de cada especialidade.\n Programação(p);\n Redes(r);\n Gerência de sistema de software(g);\n Hardware(h)\n");

valorP=100;
valorR=200;	//valor por hora de serviço
valorG=150;
valorH=120;

diaHoras=0;
totalHorasP=0;
totalHorasG=0;
totalHorasH=0;
totalHorasR=0;  	//incialização das variáveis acumuladoras
totalFaturaP=0;
totalFaturaG=0;
totalFaturaH=0;
totalFaturaR=0;
diaFaturamento=0;
periodoHoras=0;
periodoFaturamento=0;


for(i=1;i<=30;i++){

 printf("No dia %d foram feitos quantos pedido?\n",i);
 scanf("%d",&diaNumPedidos);

 if(diaNumPedidos){
	for(j=1;j<=diaNumPedidos;j++){
  
  printf("Especialidade: ");
  especialidade=getchar();
  
  printf("Pedido: ");
  scanf("%d",&pedido);
  
  printf("Horas de trabalho: ");
  scanf("%f",&horas);
  
  
  
  diaHoras+=horas;
  
  switch(especialidade){
  	case 'p': 
    horasP=horas;
    faturaP=horasP*valorP;
    totalHorasP+=horasP;
    totalFaturaP+=faturaP;
    diaFaturamento+=faturaP;
    break;
  	case 'r': 
    horasR=horas;
    faturaR=horasR*valorR;
    totalHorasR+=horasR;
    totalFaturaR+=faturaR;
    diaFaturamento+=faturaR;
    break;
  	case 'g': 
    horasG=horas;
    faturaG=horasG*valorG;
    totalHorasG+=horasG;
    totalFaturaG+=faturaG;
    diaFaturamento+=faturaG;
    break;
  	case 'h': 
    horasH=horas;
    faturaH=horasH*valorH;
    totalHorasH+=horasH;
    totalFaturaH+=faturaH;
    diaFaturamento+=faturaH;
    break;
  	default:
    printf("Código de especialidade inválido\n");
  }
  
	}  
  }
  
  periodoHoras+=diaHoras;
  periodoFaturamento+=diaFaturamento;
  
  if(diaFaturamento>maxFaturamento) {
  	maxFaturamento=diaFaturamento;
  	maxDiaFaturamento=i;
  }
  
  if(diaNumPedidos>maxPedido) {
  	maxPedido=diaNumPedidos;  	//dia de maiores...
  	maxDiaPedido=i;
  }
  
  if(diaHoras>maxHoras){
  	maxHoras=diaHoras;
	maxDiaHora=i;
  }
  printf("\n");
 }
porcentHorasP=(totalHorasP/periodoHoras)*100;
porcentHorasR=(totalHorasR/periodoHoras)*100;  //Porcentagem de horas de
porcentHorasG=(totalHorasG/periodoHoras)*100;  //cada equipe
porcentHorasH=(totalHorasH/periodoHoras)*100;

//árvore de decisão da equipe que menos faturou
if(totalFaturaP<totalFaturaR)
	if(totalFaturaP<totalFaturaG)
  if(totalFaturaP<totalFaturaH)
  	menorFatura='p';
  else
  	menorFatura='h';
	else 
  if(totalFaturaG<totalFaturaH)
  	menorFatura='g';	
      	else
        menorFatura='h';
else 
	if(totalFaturaR<totalFaturaG)
  	if(totalFaturaR<totalFaturaH)
  	menorFatura='r';
  else
  	menorFatura='h';
	else 
  if(totalFaturaG<totalFaturaH)
  	menorFatura='g';
  else
  	menorFatura='h';
        
printf("Dia de maior número de pedidos:        %d",maxDiaPedido);	
printf("Dia de maior número horas de trabalho: %d",maxDiaHora);
printf("Dia de maior faturamento:              %d",maxDiaFaturamento);
printf("Faturamento total de 30 dias:          %.2f",periodoFaturamento);
printf("Horas totais trabalhadas em 30 dias:   %.2f",periodoHoras);
printf("Porcentagem de horas trabalhadas de cada equipe:\n");
printf("Programação: %.2f'%'\n",porcentHorasP);
printf("Redes: %.2f'%'\n",porcentHorasR);
printf("Gerência de software: %.2f'%'\n",porcentHorasG);
printf("Manutenção de hardware: %.2f'%'\n",porcentHorasH);
printf("A equipe que menos faturou foi a de ");
switch(menorFatura){
	case 'p':printf("Programação de computadores\n");
   break;
	case 'h':printf("Manutenção de hardware\n");
   break;
	case 'g':printf("Gerência de software\n");
   break;
	case 'r':printf("Redes de computadores\n");
   break;
}
}

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
Q Q tá pegando q ele tá armazenando algo errado na variavel ESPECIALIDADE

alguém ae pode me ajudar??!...valeu ae!...abraço!

#include "stdio.h"
#include "stdlib.h"
main(){
int valorP,valorR,valorG,valorH,i,j,diaNumPedidos,maxDiaFaturamento,maxDiaPedido,maxPedido,maxDiaHora,pedido,teste;

char especialidade,menorFatura;

float horas,diaHoras,horasP,horasR,horasG,horasH,faturaP,faturaR,faturaG,faturaH,totalHorasP,totalHorasR,totalHorasG,totalHorasH,totalFaturaP,totalFaturaG,totalFaturaR,totalFaturaH,diaFaturamento,periodoHoras,periodoFaturamento,maxFaturamento,maxHoras,porcentHorasP,porcentHorasR,porcentHorasG,porcentHorasH;

printf("Segue abaixo o código de cada especialidade.\n Programação(p);\n Redes(r);\n Gerência de sistema de software(g);\n Hardware(h)\n");

valorP=100;
valorR=200;	//valor por hora de serviço
valorG=150;
valorH=120;

diaHoras=0;
totalHorasP=0;
totalHorasG=0;
totalHorasH=0;
totalHorasR=0;  	//incialização das variáveis acumuladoras
totalFaturaP=0;
totalFaturaG=0;
totalFaturaH=0;
totalFaturaR=0;
diaFaturamento=0;
periodoHoras=0;
periodoFaturamento=0;


for(i=1;i<=30;i++){

 printf("No dia %d foram feitos quantos pedido?\n",i);
 scanf("%d",&diaNumPedidos);

 if(diaNumPedidos){
	for(j=1;j<=diaNumPedidos;j++){
  
  printf("Especialidade: ");
   scanf("%c",&especialidade);
  
  printf("Pedido: ");
  scanf("%d",&pedido);
  
  printf("Horas de trabalho: ");
  scanf("%f",&horas);
  
  
  
  diaHoras+=horas;
  
  switch(especialidade){
  	case 'p': 
    horasP=horas;
    faturaP=horasP*valorP;
    totalHorasP+=horasP;
    totalFaturaP+=faturaP;
    diaFaturamento+=faturaP;
    break;
  	case 'r': 
    horasR=horas;
    faturaR=horasR*valorR;
    totalHorasR+=horasR;
    totalFaturaR+=faturaR;
    diaFaturamento+=faturaR;
    break;
  	case 'g': 
    horasG=horas;
    faturaG=horasG*valorG;
    totalHorasG+=horasG;
    totalFaturaG+=faturaG;
    diaFaturamento+=faturaG;
    break;
  	case 'h': 
    horasH=horas;
    faturaH=horasH*valorH;
    totalHorasH+=horasH;
    totalFaturaH+=faturaH;
    diaFaturamento+=faturaH;
    break;
  	default:
    printf("Código de especialidade inválido\n");
  }
  
	}  
  }
  
  periodoHoras+=diaHoras;
  periodoFaturamento+=diaFaturamento;
  
  if(diaFaturamento>maxFaturamento) {
  	maxFaturamento=diaFaturamento;
  	maxDiaFaturamento=i;
  }
  
  if(diaNumPedidos>maxPedido) {
  	maxPedido=diaNumPedidos;  	//dia de maiores...
  	maxDiaPedido=i;
  }
  
  if(diaHoras>maxHoras){
  	maxHoras=diaHoras;
	maxDiaHora=i;
  }
  printf("\n");
 }
porcentHorasP=(totalHorasP/periodoHoras)*100;
porcentHorasR=(totalHorasR/periodoHoras)*100;  //Porcentagem de horas de
porcentHorasG=(totalHorasG/periodoHoras)*100;  //cada equipe
porcentHorasH=(totalHorasH/periodoHoras)*100;

//árvore de decisão da equipe que menos faturou
if(totalFaturaP<totalFaturaR)
	if(totalFaturaP<totalFaturaG)
  if(totalFaturaP<totalFaturaH)
  	menorFatura='p';
  else
  	menorFatura='h';
	else 
  if(totalFaturaG<totalFaturaH)
  	menorFatura='g';	
      	else
        menorFatura='h';
else 
	if(totalFaturaR<totalFaturaG)
  	if(totalFaturaR<totalFaturaH)
  	menorFatura='r';
  else
  	menorFatura='h';
	else 
  if(totalFaturaG<totalFaturaH)
  	menorFatura='g';
  else
  	menorFatura='h';
        
printf("Dia de maior número de pedidos:        %d",maxDiaPedido);	
printf("Dia de maior número horas de trabalho: %d",maxDiaHora);
printf("Dia de maior faturamento:              %d",maxDiaFaturamento);
printf("Faturamento total de 30 dias:          %.2f",periodoFaturamento);
printf("Horas totais trabalhadas em 30 dias:   %.2f",periodoHoras);
printf("Porcentagem de horas trabalhadas de cada equipe:\n");
printf("Programação: %.2f'%'\n",porcentHorasP);
printf("Redes: %.2f'%'\n",porcentHorasR);
printf("Gerência de software: %.2f'%'\n",porcentHorasG);
printf("Manutenção de hardware: %.2f'%'\n",porcentHorasH);
printf("A equipe que menos faturou foi a de ");
switch(menorFatura){
	case 'p':printf("Programação de computadores\n");
   break;
	case 'h':printf("Manutenção de hardware\n");
   break;
	case 'g':printf("Gerência de software\n");
   break;
	case 'r':printf("Redes de computadores\n");
   break;
}
}

Foi mal...mandei uma alteração de teste...

o pb tá em

SCANF("%C",&ESPECIALIDADES);

ele deve tá encaixando outro caracter na variavel...

não tá dando certo nem funfando...

tá foda

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...