Ir ao conteúdo

Ajuda problema urgente


FLIP ADS

Posts recomendados

Postado

Estou sofrendo desde manha com esse exercicio.

Mostre os erros mensais de uma maquina de uma fabrica.

oS ERROS DEVEM SER DIGITADOS DIARIAMENTE, porém se erro menor igual a 10 apareça a mensagem diaria "Erro diario dentro do padrão",

Caso erros forem maiores que 10 erros, digite a opção.

<1> erro por falta de materia prima.

<2> erro por falta de enrgia.

<3> erro por falta de funcionario.

<?> Digite qualquer tecla para erro não indentificado.

Conforme digitado o erro deve parecer a mensagem:

1 "Ligue para o encaregado";

2 "Ligue para Cia de Luz";

3 "Ligue para o diretor";

"Qualquer telca" "Ligue para a coordenação".

Pelo o que eu tendi aqui ele não entra dentro do if e não soma o total porque a variavel nao é inteira.

é isso mesmo?

como arumo isso?

#include <stdio.h>
#include <stdlib.h>
#define N 2

int main()
{
int i;
float erros_maq_dia[N], tipo_erro, erros_total;

for(i=0;i<N;i++)
{
printf("Digite a quantidade de vezes que a maquina parou\n");
scanf("%f", &erros_maq_dia[i]);

if(erros_maq_dia < 10)
{
printf("Os erros diarios estão no padrão\n");
}
else
{
printf("Erros diarios fora do padrão, digite a opção\n"
"Erro por falta de materia prima digite <1>\n"
"Erro por falta de energia digite <2>\n"
"Erro por falta de de funcionarios <3>\n"
"Erro sem saber o motivo, digite qualer tecla\n");
scanf("%f", &tipo_erro);

if(tipo_erro == 1)
{
printf("Ligue para o encaregado\n");
}
else if(tipo_erro == 2)
{
printf("Ligue para Cia de Luz\n");
}
else if(tipo_erro == 3)
{
printf("Ligue para o diretor\n");
}
else
{
printf("Ligue para a coordenação\n");
}

}
// sei que para somar o total de erros do meses é algo desse tipo, mas tentei todos e não deu certo
//erros_total +=erros_maq_dia[N];
//erros_total +=erros_maq_dia[i];
//erros_total +=erros_maq_dia+0;

}



printf("O total de no mes %f \n", erros_total);

return 0;
}

Postado


printf("Digite a quantidade de vezes que a maquina parou\n");
scanf("%f", &erros_maq_dia[i]);

if(erros_maq_dia < 10)

erros_maq_dia sem indexador é um ponteiro...

// sei que para somar o total de erros do meses é algo desse tipo, mas tentei todos e não deu certo
//erros_total +=erros_maq_dia[N];
//[B]erros_total +=erros_maq_dia[i];[/B]
//erros_total +=erros_maq_dia+0;

}

O que está em negrito funciona, o único problema é que você não inicializou erros_total com valor 0.0 antes de entrar no for...

Postado

Assim ?

int i;
float erros_maq_dia[N], tipo_erro, [B]erros_total=0[/B];

  for(i=0;i<N;i++)
{
printf("Digite a quantidade de vezes que a maquina parou\n");
scanf("%f", [B]&erros_maq_dia);[/B]

erros_total +=erros_maq_dia[i];

mais mesmu assim da problema na entrada do if...

Poderia representar ?

Postado

Consertei:

Compara com o seu.

Qualquer coisa só perguntar.


#include <stdlib.h>
#define N 2

int main(void)
{
unsigned int i, tipo_erro;
unsigned int erros_maq_dia[N], erros_total=0;

for(i=0;i<N;i++)
{
printf("Digite a quantidade de vezes que a maquina parou\n");
scanf("%d", &erros_maq_dia[i]);
getchar();

if(erros_maq_dia[i] < 10)
{
printf("Os erros diarios estão no padrão\n");
}
else
{
printf("Erros diarios fora do padrão, digite a opção\n"
"Erro por falta de materia prima digite <1>\n"
"Erro por falta de energia digite <2>\n"
"Erro por falta de de funcionarios <3>\n"
"Erro sem saber o motivo, digite qualer tecla\n");
scanf("%d", &tipo_erro);
getchar();

if(tipo_erro == 1)
{
printf("Ligue para o encaregado\n");
}
else if(tipo_erro == 2)
{
printf("Ligue para Cia de Luz\n");
}
else if(tipo_erro == 3)
{
printf("Ligue para o diretor\n");
}
else
{
printf("Ligue para a coordenação\n");
}

}


erros_total +=erros_maq_dia[i];


}



printf("O total de erros no mes %d \n", erros_total);
getchar(); /*Mantem a janela aberta*/

return 0;
}
#include <stdio.h>

Postado

amigo quando copio seu codigo da certinho..mais quando tenta complemebtar o meu não soma prar dar o total de erros...e quando digito o valor acima de 10 ele não enra no else (pode ser um problema de meu programa..uso o dev C e o code::blocks).

pode me ajudar nisso

#include <stdio.h>
#include <stdlib.h>
#define N 2

int main()
{
int i, tipo_erro;
float erros_maq_dia[N], erros_total=0;

for(i=0;i<N;i++)
{
printf("Digite a quantidade de vezes que a maquina parou\n");
scanf("%d", &erros_maq_dia[i]);
getchar();

if(erros_maq_dia[i] <= 10)
{
printf("Os erros diarios estão no padrão\n");
}
else
{
printf("Erros diarios fora do padrão, digite a opção\n"
"Erro por falta de materia prima digite <1>\n"
"Erro por falta de energia digite <2>\n"
"Erro por falta de de funcionarios <3>\n"
"Erro sem saber o motivo, digite qualer tecla\n");
scanf("%d", &tipo_erro);
getchar();

if(tipo_erro == 1)
{
printf("Ligue para o encaregado\n");
}
else if(tipo_erro == 2)
{
printf("Ligue para Cia de Luz\n");
}
else if(tipo_erro == 3)
{
printf("Ligue para o diretor\n");
}
else
{
printf("Ligue para a coordenação\n");
}

}


erros_total +=erros_maq_dia[i];


}



printf("O total de erros no mes %d \n", erros_total);
getchar();
return 0;
}

e poderia me explicar o porque disso? negritado

printf("O total de erros no mes %[B]d[/B] \n", erros_total);
[B]getchar();[/B]

Postado
amigo quando copio seu codigo da certinho..mais quando tenta complemebtar o meu não soma prar dar o total de erros...e quando digito o valor acima de 10 ele não enra no else (pode ser um problema de meu programa..uso o dev C e o code::blocks).

pode me ajudar nisso


[B]float[/B] erros_maq_dia[N], erros_total=0;

for(i=0;i<N;i++)
{
printf("Digite a quantidade de vezes que a maquina parou\n");
scanf("[B]%d[/B]", &erros_maq_dia[i]);
getchar();

Perceba que você mudou as variáveis de novo para float e está tentando ler como inteiro...

Veja também que não existe 0.5 erro ou 1.6 erro... um erro tem de ser inteiro, ou errou ou não, não faz sentido usar float.

e poderia me explicar o porque disso? negritado

printf("O total de erros no mes %[B]d[/B] \n", erros_total);
[B]getchar();[/B]

De novo, erros_total tem de ser uma variável inteira e para imprimir inteiros utiliza-se %d

O getchar();, neste caso, serve para manter a janela aberta até que o usuario pressione enter.

Arquivado

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

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!