Ir ao conteúdo
  • Cadastre-se

Programa em C não conta corretamente.


jessicaburiche

Posts recomendados

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:

Link para o comentário
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");

}}

Link para o comentário
Compartilhar em outros sites

Arquivado

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

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