Ir ao conteúdo

Posts recomendados

Postado

Foi distribuído um questionário composto por N perguntas para um grupo de pessoas. Para cada pergunta, pode-se ter as respostas SIM, INDIFERENTE e NÃO, representadas pelas letras ‘S’, ‘I’ e ‘N’, respectivamente. Como exemplo de perguntas, considere: 1) Você se incomoda que seu parceiro fume? 2) Você gosta de música sertaneja? ... N) Você gosta de cebola? Exercícios: (a) Para cada questão, é dito que há afinidade entre um rapaz e uma moça se ambos deram a mesma resposta ou pelo menos um deles der a resposta indiferente. A partir disto, implemente a rotina int TemAfinidade(char rapaz, char moca) que receba uma resposta de um rapaz e uma resposta de uma moça e retorne 1 (um) caso ambos tenham afinidade e 0 (zero) caso contrário;

(b) implemente a rotina float CalculaIndiceAfinidade(char *vRespostaRapaz, char *vRespostaMoca, int N) que receba dois vetores com as N respostas de uma rapaz e uma moça, calcule e retorne o índice de afinidade; esta rotina deverá utilizar a rotina implementada no item (a); o índice de afinidade é dado pelo número de respostas com retorno 1 (um) pela rotina do item (a) dividido pelo número de perguntas N; e

minhas rotinas são estas,

#include <stdio.h>

int TemAfinidade(char rapaz,char moca)
{
    if (char rapaz==char moca)
        return 1;
    else if(char rapaz=="i"||char moca=="i")
        return 1;
    else{
        return 0;
    }
    return 0;
}


float CalculaIndiceAfinidade(char *vRespostasRapaz,char *vRespostasmoca,int n){
        int i;
        for(i=0;i<n;i++){
            if(TemAfinidade(vRespostasmoca,vRespostasRapaz)==1)
                i+=1;
}

     return i/n;
}

n sei se estão corretas e aqui a main

int main(){
    float resultado;
    int n[3];
    char s[3]={'s','i','n'};
    char RespRapaz[3],RespMoca[3];

    printf("//////////////////////\nPerguntas ao rapaz\n\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\");
    printf("\nVOCE GOSTA DE ROCK?:\n",n[0]);
    scanf("%c *c",&RespRapaz[0]);
    printf("\nVOCE GOSTA DE FILMES DE TERROR?\n",n[1]);
    scanf("%c *c",&RespRapaz[1]);
    printf("\nVOCE GOSTA DE SERIES?\n");
    scanf("%c *c",&RespRapaz[2],&s[2]);

    printf("//////////////////////\nPerguntas a Moça\n\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\");
    printf("\nVOCE GOSTA DE ROCK?:\n",n[0]);
    scanf("%c *c",&RespMoca[0],&s[0]);
    printf("\nVOCE GOSTA DE FILMES DE TERROR?\n",n[1]);
    scanf("%c *c",&RespMoca[1],&s[1]);
    printf("\nVOCE GOSTA DE SERIES?\n",n[2]);
    scanf("%c *c",&RespMoca[2],&s[2]);


    resultado=CalculaIndiceAfinidade(RespRapaz,RespMoca);

    printf("\no indice de Afinidade eh de : %2.f\n", resultado);

    return 0;}

 

  • Curtir 1
Postado

@lenayoung    aqui na função  temAfinidade  não pode ter esse char na comparação :

então ficaria assim :

#include <stdio.h>
int TemAfinidade(char rapaz,char moca)
{
    if (rapaz == moca)
        return 1;
    else if( rapaz == "i" || moca == "i")
        return 1;
    else{
        return 0;
    }
    return 0;
}

e nessa linha aqui faltou colocar mais um dado :

 resultado=CalculaIndiceAfinidade(RespRapaz,RespMoca,5);

com isso ele compila , mas será preciso verificar o resultado se está certo ,  ainda não peguei a lógica desse código .

     quando você for postar códigos use o botão   <>   que está na barra de ferramentas lá em cima da janela de responder , pois sem isso seu código fica sem alguns caracteres .

  • Curtir 1
Postado

@devair1010 Obrigado por me responder ,se n for te incomoda demais , vetores ainda está muito vago pra mim, neste exercicio  preciso pegar as respostas do rapaz e da moca , e usar minha rotina pra ver se deu resposta igual ,como posso comparar as duas respostas e retornar a porcentagem da afinidade dos dois,  e como posso colocar as variaveis no main. Desculpa mesmo incomodar ,quero mais entender mesmo como funciona.

  • Curtir 1
Postado

@lenayoung    um vetor seria assim :

vetor_string2.thumb.jpg.a09517baeb6923caf0402472bfbd9903.jpg

um vetor é como se fosse um gaveteiro que em cada gaveta pode se colocar um dado número ou letra, então seu vetor s seria assim na posição zero você tem o caractere   s    na posição hum o caractere   i  e na posição 2 o caractere   

coloquei as variáveis lá no inicio antes da main para poder usa-las em qualquer parte do programa, e fiz algumas modificações no seu código que ficou assim :

#include <stdio.h>
float resultado;
int n[3];
char s[3]={'s','i','n'};
char RespRapaz[3],RespMoca[3];
int TemAfinidade(char rapaz,char moca)
{
    if (rapaz == moca)
        return 1;
    else if(rapaz==s[1]|| moca==s[1])
        return 1;
    else{
        return 0;
    }
    return 0;
}

float CalculaIndiceAfinidade(char *vRespostasRapaz,char *vRespostasmoca,int n){
    int i,r=0;
    for(i=0;i<n;i++){
        if(TemAfinidade(RespRapaz[i],RespMoca[i])==1)
            r++;
    }
    return r*100/n;
}
/*n sei se estão corretas e aqui a main*/
int main(){
    printf("//////////////////////\nPerguntas ao rapaz\n\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\");
    printf("\nVOCE GOSTA DE ROCK?: ",n[0]);
    fflush(stdin);
    scanf("%c",&RespRapaz[0]);
    printf("\nVOCE GOSTA DE FILMES DE TERROR? ",n[1]);
    fflush(stdin);
    scanf("%c",&RespRapaz[1]);
    printf("\nVOCE GOSTA DE SERIES? ");
    fflush(stdin);
    scanf("%c",&RespRapaz[2]);
    printf("//////////////////////\nPerguntas a Moça\n\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\");
    printf("\nVOCE GOSTA DE ROCK?: ",n[0]);
    fflush(stdin);
    scanf("%c",&RespMoca[0]);
    printf("\nVOCE GOSTA DE FILMES DE TERROR? ",n[1]);
    fflush(stdin);
    scanf("%c",&RespMoca[1]);
    printf("\nVOCE GOSTA DE SERIES? ",n[2]);
    fflush(stdin);
    scanf("%c",&RespMoca[2]);

    resultado=CalculaIndiceAfinidade(RespRapaz,RespMoca,3);
    printf("\no indice de Afinidade eh de : %2.f porcento\n", resultado);
    return 0;
}

a função calculaindiceafinidade retorna a porcentagem de afinidade e as variáveis na main estão certas .

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!