Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
antnoia

ajuda com validação de caractere

Recommended Posts

pessoal é o seguinte, tenho que fazer esse exercicio:

1 - um cinema que possui 100 lugares esta sempre com ocupação total, cada espectador tem que responder um questionario depois do filme, nesse questionario perguntam a idade o o que ele achou do filme. a - otimo, b - bom, c - regular, d - ruim, e - pessimo, a idade nao pode ser =0.

precisa ser apresentado os seguintes resultados:

a: a quantidade que responde otimo.

b: a diferença entre as respostas bom e regular

c: a media da idade de quem respondeu ruim.

d: o percentual de respostas pessimo e a maior idade que respondeu pessimo.

e: a diferença entre a maior idade de quem respondeu otimo e a maior idade de quemrespondeu ruim

ai vai o codigo e em segui o que eu nao consegui fazer.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int i=0;
char resposta=' ';
int idade=0;
int otimo=0,bom=0,regular=0,ruim=0,pessimo=0;
int incorreto=0;
int idruim=0,idpessimo=0,idotimo=0;
for(i=0;i<100;i++)
{
incorreto=0;
do
{
printf("\nIdade do %d%c espectador:\n",i+1,167);
fflush(stdin);
scanf("%d",&idade);
}
while(idade==0);

printf("\nResposta do %d%c espectador:\n",i+1,167);
fflush(stdin);
printf("A - Otimo\nB - Bom\nC - Regular\nD - Ruim\nE - Pessimo\n");
scanf("%c",&resposta);
strlwr(&resposta);
do
{
switch(resposta)
{


case 'a':
otimo+=1;
if(idade>idotimo)
idotimo=idade;
break;
case 'b':
bom+=1;
break;
case 'c':
regular+=1;
break;
case 'd':
ruim+=1;
idruim=idruim+idade;
break;
case 'e':
pessimo+=1;
if(idade>idpessimo)
idpessimo=idade;
break;
default:
incorreto=1;
break;
}
}
while(incorreto==1);


}

printf("\nRespostas otimo: %d\n",otimo);
if(bom>regular)
{
printf("\nDiferenca entre bom e regular: %d\n",bom-regular);
}
else
{
if(regular>bom)
printf("\nDiferenca entre bom e regular: %d\n",regular-bom);
else
if(regular==0 && bom==0)
{
printf("\nBom e regular nao foram votados!\n");
}
else
{
printf("\nEntre bom e regular nao ha diferenca pois sao valores iguais\n");
}
}
if(ruim>0)
{
printf("\nMedia das idadades das pessoas que responderam ruim: %d\n",idruim/ruim);
}
else
{
printf("\nNinguem respondeu ruim\n");
}

printf("\nPercentual de pessoas que responderam pessimo: %f\n",pessimo/100);
printf("\nMaior idade da pessoa que respondeu pessimo: %d\n",idpessimo);
if(idotimo>idruim)
{
printf("\nDiferenca entre maior idade otimo e maior idade ruim: %d\n",idotimo-idruim);
}
else
{
if(idruim>idotimo)
printf("\nDiferenca entre maior idade otimo e maior idade ruim: %d\n",idruim-idotimo);
else
if(idotimo==0 && idruim==0)
{
printf("\nOtimo e Ruim nao foram votados");
}
else
{
printf("\nEntre as maiores idades de otimo e ruim não ha diferenca\n");
}
}

system("pause");
return (0);
}

na validacao de idade ele só valida a do 1º espectador, a segunda pode ser ivalida que ele aceita, o que tenho que fazer para que ele obrigue o cara a responder uma opcao correta sempre?

na validação da resposta se o cara digitar alguma letra que nao tenha na lista ele trava o programa, como posso fazer para que ele volte e obrigue o cara a responder uma opcao valida?

uso o dev c++

podem ser usadas structs e funções tb, agradeço desde já

Compartilhar este post


Link para o post
Compartilhar em outros sites

duas coisas pra facilitar sua vida:


typedef struct Lugares {
int idade;
char resp;
} tLugar;

No seu main você usa então:


int main()
//...
tLugar lugar[100];

for (x=0; x<100; x++) {
lugar[x].idade = pegarIdade(x);
lugar[x].resp = pegarResposta(x);
}

//...
return 0;
}

int pegarIdade(int x) {
int idade = 0;
do {
printf("\nIdade do %d%c espectador:\n",x+1,167);
scanf("%d",&idade);
} while(idade==0);
return idade;
}

char pegarResposta(int x) {
char resp;
do {
printf("\nResposta do %d%c espectador:\n",x+1,167);
printf("a - Otimo\nb - Bom\nc - Regular\nd - Ruim\ne - Pessimo\n");
fflush(stdin);
scanf("%c",&resp);
} while(resp < 'a' || resp > 'e');
return resp;
}

Depois é só percorrer o vetor lugar[] e pegar os dados que quiser.

Por exemplo, pra saber quantos responderam 'otimo':


int otimo = 0;
//...
for (x=0; x<100; x++)
if (lugar[x].resp == 'a') otimo++;

Editado por dontpanic

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • valeu cara! facilitou mesmo pode fechar o topico já consegui resolver o problema

    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






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×