Ir ao conteúdo
  • Cadastre-se
jessicaburiche

Programa em C não conta corretamente.

Recommended Posts

Boa tarde!

Sou novata em programação e estou fazendo um exercício da faculdade, onde tenho que fazer 5 perguntas à uma pessoa e, dependendo das respostas, dizer se ela é "cumplice, suspeita, inocente, ou assasina". Achei que seria bem fácil e comecei a fazer o programa, porém, mesmo achando que tinha terminado, ele não conta certo a quantidade de respostas "sim" e "não". Não consigo enxergar onde está o erro. Por favor, se alguém puder me ajude. Uso o Dev- C++.

Obrigada



//Exercício 4 - valor 2,0 pontos
//Faça um programa que faça 5 perguntas para uma pessoa sobre um crime. As perguntas são:
//"Telefonou para a vítima?"
//"Esteve no local do crime?"
//"Mora perto da vítima?"
//"Devia para a vítima?"
//"Já trabalhou com a vítima?"
//O programa deve no final emitir uma classificação sobre a participação da pessoa no crime.
//Se a pessoa responder positivamente a 2 questões ela deve ser classificada como "Suspeita",
//entre 3 e 4 como "Cúmplice" e 5 como "Assassino".
//Caso contrário, ele será classificado como "Inocente".

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>

int main ()
{
char r1, r2, r3, r4, r5, s, n;
s=0;
s=0;
system("cls");
printf("INVESTIGACAO\n\n\n");
printf ("Responda com [Sim] ou [Nao]:\n\n");
printf("Telefonou para a vitima?\n");
scanf ("%d\n", &r1);
if (r1,"sim")
s=s+1;
else if (r1,"nao")
n=n+1;
{
printf("Esteve no local do crime?\n");
scanf ("%s\n", &r2);
if (r2,"sim")
s=s+1;
else if (r2,"nao")
n=n+1;
{
printf("Mora perto da vitima?\n");
scanf ("%s\n", &r3);
if (r3,"sim")
s=s+1;
else if (r3,"nao")
n=n+1;
{
printf("Devia para a vitima?\n");
scanf ("%s\n", &r4);
if (r4,"sim")
s=s+1;
else if (r4,"nao")
n=n+1;
{
printf("Ja trabalhou com a vitima?\n");
scanf ("%s\n", &r5);
if (r5,"sim")
s=s+1;
if (r5,"nao")
n=n+1;
}}}
{
scanf ("%d", s);
scanf ("%d", n);
if (s==2)
{
printf ("\nSuspeita\n\n");
}
else if (s==3)
{
printf ("\nCumplice\n\n");
}
else if (s==4)
{
printf ("\nCumplice\n\n");
}
else if (s==5)
{
printf ("\nAssasino\n\n");
}
else
{
printf ("\nInocente\n\n");
}
system("pause");
}}}


:wacko:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu acho que o problema está na comparação que você está usando,

if(r1,"sim")

De fato nem entendi o que você quis dizer. Eu sugeriria

if([COLOR="Blue"]r1[0] == 's'[/COLOR])
{
s = s + 1;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites
Eu acho que o problema está na comparação que você está usando,

if(r1,"sim")

De fato nem entendi o que você quis dizer. Eu sugeriria

if([COLOR="Blue"]r1[0] == 's'[/COLOR])
{
s = s + 1;
}

Mesmo assim ainda não consegui fazer. O caso, é que eu preciso contar o número de respostas "sim" e dizer qual a classificação da pessoa em relação ao crime: "Inocente, suspeito, cúmplice ou assassino".

Mudei totalmente o código e utilizei Switch case, usando como resposta números, para ficar mais fácil comparar, mas ainda sim não consigo fazê-lo contar corretamente. Por favor, se puder me ajude, pois eu já tentei de tudo.

Segue abaixo o novo código:


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

int main ()
{

int s, n, resp, cont;
s=0;
n=0;
printf("INVESTIGACAO\n\n\n");
printf ("Responda com [s] Sim ou [n] Nao:\n\n");
printf ("Telefonou para a vitima?\n");
scanf ("%d", &resp);
switch (resp)
{
case 1:
printf ("sim\n\n");
cont++;
break;
case 0:
printf ("nao\n\n");
}
printf ("Esteve no local do crime?\n");
scanf ("%d", &resp);
switch (resp)
{
case 1:
printf ("sim\n\n");
cont++;
break;
case 0:
printf ("nao\n\n");
}
printf ("Mora perto da vitima?\n");
scanf ("%d", &resp);
switch (resp)
{
case 1:
printf ("sim\n\n");
cont++;
break;
case 0:
printf ("nao\n\n");
}
printf ("Devia para a vitima?\n");
scanf ("%d", &resp);
switch (resp)
{
case 1:
printf ("sim\n\n");
cont++;
break;
case 0:
printf ("nao\n\n");
}
printf ("Ja trabalhou com a vitima?\n");
scanf ("%d", &resp);
switch (resp)
{
case 1:
printf ("sim\n\n");
cont++;
break;
case 0:
printf ("nao\n\n");
break;
}
{
if (cont <<= 1)
{
printf ("inocente\n\n");
}
else if (cont == 2)
{
printf ("suspeito\n\n");
}
else if (cont == 3)
{
printf ("cumplice\n\n");
}
else if (cont == 4)
{
printf ("cumplice\n\n");
}
else if (cont == 5)
{
printf ("assassino\n\n");
}
{
}
{
}
system ("pause");

}}

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

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

×