Ir ao conteúdo

Posts recomendados

Postado

Linguagem C, erro anexo.

 

Pergunta:

 

Uma certa empresa fez uma pesquisa de mercado para saber se as pessoas gostaram ou não do seu último produto lançado. Para isto, coletou o sexo do entrevistado e a sua resposta (sim ou não). Sabendo que foram entrevistadas 150 pessoas, fazer um algoritmo que calcule e mostre ao final: • O número de pessoas que responderam sim; • O número de pessoas que responderam não; • A percentagem de pessoas do sexo feminino que responderam sim; • A percentagem de pessoas do sexo masculino que responderam não; Para a resposta SIM/NÃO. Utilize uma variável do tipo CHAR, que armazena S ou N, ou use uma variável do tipo INT que armazena 1 (para SIM) e 2 (para NÃO).

 

Por que não esta compilando, onde estou errando ?

#include<stdio.h>

#include<math.h>

#include<string.h>

int main(){

int x, i, sim=0, nao=0, masc=0, fem=0; char sexo[15], resposta[4]; float femsim=0, mascnao=0;

  scanf("%d", &x);

  for (i=0; i<x; i++){

    scanf("%s" ,&resposta);

scanf("%s" &sexo);

    if ((strcmp(sexo,"MASCULINO")==0)&&(strcmp(resposta,"SIM")==0)){

      sim++; masc++;

    }

    else if ((strcmp(sexo,"MASCULINO")==0)&&(strcmp(resposta,"NAO")==0)){

      nao++; mascnao++; masc++;

    }

    else if ((strcmp(sexo,"FEMININO")==0)&&(strcmp(resposta,"SIM")==0)){

      sim++; femsim++; fem++;

    }

    else if ((strcmp(sexo,"FEMININO")==0)&&(strcmp(resposta,"NAO")==0)){

      nao++; fem++;

    }

  }

  printf("SIM = %d\nNAO = %d\n", sim, nao);

  printf("FEMININO - SIM = %.2f\n", (femsim*100)/fem);

  printf("MASCULINO - NAO = %.2f\n", (mascnao*100)/masc);

  return 0;

}

onde esta o problema.png

  • Amei 1
Postado
11 horas atrás, toscosan disse:

onde estou errando ?

 

✔️❌ Para responder SIM / NAO o enunciado impõe duas possibilidades:

  1. Usar um caractere S ou N
  2. Usar um numeral   1  ou 2

 

 

SUGESTÕES

 

  • Coloque antes das entradas mensagens de solicitação. Ex.:
    int qpe= 0; /*< Quantidade de Pessoas Entrevistadas */
    
    fprintf(stdout,"%s","Usuario, por favor, entre com quantidade de entrevistas.\n? ");
    fscanf(stdin," %d",&qpe);
  • Ainda é Possível resolver usando vetores.

|

 

  • Curtir 1
  • 8 meses depois...
Postado

Assim funciona:

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int main() {
    int quantidadeEntrevistados = 2;  // Total de pessoas entrevistadas

    int quantidadeSim = 0;  // Quantidade de pessoas que responderam sim
    int quantidadeNao = 0;  // Quantidade de pessoas que responderam nao

    int quantidadeFeminino = 0;     // Quantidade de mulheres
    int quantidadeMasculino = 0;    // Quantidade de homens

    double porcentagemFeminino = 0.0;   // Baseado na quantidade de mulheres
    double porcentagemMasculino = 0.0;  // Baseado na quantidade de homens

    char sexo = ' ';
    char resposta = ' ';

    for (int i = 0; i < quantidadeEntrevistados; ++i) {
        printf("-------------------------------------------------- \n");
        printf("Entrevistado [ %i de %i ] \n", (i + 1), quantidadeEntrevistados);

        do {
            printf("Digite seu sexo [ F / M ]: ");
            scanf(" %c%*c", &sexo);
            sexo = (char) toupper(sexo);
        } while (sexo != 'F' && sexo != 'M');

        do {
            printf("Digite sua resposta [ S / N ]: ");
            scanf(" %c%*c", &resposta);
            resposta = (char) toupper(resposta);
        } while (resposta != 'S' && resposta != 'N');

        printf("-------------------------------------------------- \n");

        switch (sexo) {
            case 'F':
                quantidadeFeminino += 1;
                break;
            case 'M':
                quantidadeMasculino += 1;
                break;
            default:
                printf("[ E ]: Essa mensagem nao deveria ser exibida. Verifique o do-while do sexo. \n");
                exit(EXIT_FAILURE);
        }

        switch (resposta) {
            case 'S':
                quantidadeSim += 1;

                if (sexo == 'F') {
                    porcentagemFeminino += 1;
                }
                break;
            case 'N':
                quantidadeNao += 1;

                if (sexo == 'M') {
                    porcentagemMasculino += 1;
                }
                break;
            default:
                printf("[ E ]: Essa mensagem nao deveria ser exibida. Verifique o do-while da resposta. \n");
                exit(EXIT_FAILURE);
        }
    }

    porcentagemFeminino = (quantidadeFeminino != 0)
                          ? porcentagemFeminino * 100 / quantidadeFeminino
                          : 0.0;

    porcentagemMasculino = (quantidadeMasculino != 0)
                           ? porcentagemMasculino * 100 / quantidadeMasculino
                           : 0.0;

    return EXIT_SUCCESS;
}

 

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!