Ir ao conteúdo
  • Cadastre-se

C Me auxiliem nesse exercicio,estou com muita dificuldade


lenayoung

Posts recomendados

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
Link para o comentário
Compartilhar em outros sites

@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
Link para o comentário
Compartilhar em outros sites

@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
Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!