Ir para conteúdo

POWERED BY:

Arquivado

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

Ihan Fagundes

Mudar uma opcao de escolha de numero para caracteres

Recommended Posts

Olá a todos os membros do fórum. Sou iniciante em Algoritmos e Programação e estou começando com a linguagem C.
Recebi uma questão e consegui resolvê-la, mesma com algumas dificuldades. Segue a questão proposta e o algoritmo abaixo:

Uma livraria deseja efetuar uma pesquisa sobre os livros vendidos no mês. Para cada livro vendido o funcionário deve preencher um questionário, informando o tipo ( 1 - Ficção / 2 – Romance / 3 – Aventura ), o ---o do comprador (1-masculino / 2 - feminino).

Sabendo que o fim dos dados é indicado pelo tipo do livro igual a 0 (zero), elabore um programa que informe:
• Tipo de livro mais vendido no mês.
• Percentual de homens que lêem livros de ficcão.

 

 

int main(){
int t, fic=0, rom=0, ave=0,s=3;
float masfic=0, mas=0;
while(t!=0){
printf("Digite 0 para encerrar a contagem\n");
printf("Digite o tipo de livro conforme a legenda: \n\t1-Ficcao\n\t2-Romance\n\t3-Aventura\n");
scanf("%d", &t);
if(t==1){fic++;}
if(t==2){rom++;}
if(t==3){ave++;}
if(t>3){printf("Tipo invalido, digite um tipo correto\n");
system("pause");}
while(t>=1 && t<=3){
while(s>2){
printf("Digite o ---o do comprador conforme a legenda: \n\t1-Masculino\n\t2-Feminino\n");
scanf("%d", &s);
if(t==1 && s==1){masfic++;}
if(s==1){mas++;}
if(s>2){printf("Tipo invalido, digite um tipo correto\n");
system("pause");}}
t=4;
}
s=3;
system("cls");
}
if(fic>rom && fic>ave){
printf("O tipo mais vendido do mes foi Ficcao");}
if(rom>fic && rom>ave){
printf("O tipo mais vendido do mes foi Romance");}
if(ave>fic && ave>rom){
printf("O tipo mais vendido do mes foi Aventura");}
printf("\nO percentual de homens que leem livro de ficcao eh %.2f%%", (masfic / mas) * 100);
return 0;
} 

Compartilhar este post


Link para o post
Compartilhar em outros sites

- A variável t não está definida antes do uso no while.

- P/ alterar o tipo da variável p/ caractere, declare-a como char e leia com %c.

#include <stdio.h>

int main(){
    int tipo_livro;
   int contagem_ficcao=0, contagem_romance=0, contagem_aventura=0;
   int contagem_homens_ficcao = 0;
   int contagem_homens;
   int livro_mais_vendido;
   char ---o;
 
   while (1) {
      puts("Digite o tipo de livro conforme a legenda: \n\t1-Ficcao\n\t2-Romance\n\t3-Aventura");
      puts("Digite 0 para encerrar o programa.\n");
      printf(">> ");
      scanf("%c", &tipo_livro);
 
      if (tipo_livro == '0') break;
      if (tipo_livro != '1' && tipo_livro != '2' && tipo_livro != '3') {
         puts("Tipo de livro inválido. Tente novamente.");
        continue;
       }
 
      printf("Informe o ---o do leitor:\n\t1-masculino\n\t2-feminino\n");
      printf(">> ");
      scanf("%c", &---o);
 
      if (---o != '1' && ---o != '2') {
        puts("---o inválido. Tente novamente.");
       continue; // Aqui o controle irá para o início do loop. Se quiser que peça somente o ---o, a lógica deve ser alterada.
      }
 
      if (tipo_livro == '1') contagem_ficcao++;
      if (tipo_livro == '2') contagem_romance++;
      if (tipo_livro == '3') contagem_aventura++;
 
      if (---o == '1') {
         contagem_homens++;
         if (tipo_livro == '1') contagem_homens_ficcao++;
      }
   } // Fim do while
 

   if ((contagem_ficcao > contagem_romance && contagem_romance >= contagem_aventura) || (contagem_ficcao > contagem_aventura && contagem_aventura >= contagem_romance)) {
      puts("O tipo de livro mais vendido é 'ficção'.");
   } else if ((contagem_romance > contagem_ficcao && contagem_ficcao >= contagem_aventura) || (contagem_romance > contagem_aventura && contagem_aventura >= contagem_ficcao)) {
      puts("O tipo de livro mais vendido é 'romance'.");
   } else if ((contagem_aventura > contagem_romance && contagem_romance >= contagem_ficcao) || (contagem_aventura > contagem_ficcao && contagem_ficcao >= contagem_romance)) {
      puts("O tipo de livro mais vendido é 'aventura'.");
   } else {
      puts("Não houve diferença na venda dos tipos de livro.");
   }
 
   if (contagem_homens_ficcao == 0) {
       puts("Não é possível calcular a porcentagem de homens que leram livros de ficção, pois nenhum leitor desse tipo de livro é do ---o masculino.");
   } else {
       printf("Porcentagem de leitores masculinos do gênero ficção: %.2f\n", ((float)contagem_homens_ficcao)/contagem_ficcao);
  }
  return 0;
}

OBS: sem compilador por aqui...

 

Eta controle de palavras "obscenas"... Onde se lê "---o", era pra ser "s e x o" (sem os espaços).

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.