Ir ao conteúdo
  • Cadastre-se

Duvida Algoritmo


Posts recomendados

Bom dia Galera conectada, estou com este exercicio para fazer, e não esta dando certo

segue o codigo que eu fiz.



//Uma companhia de seguros tem três categorias de seguros baseadas na idade e
//ocupação do segurado. Somente pessoas com pelo menos 18 anos e não mais de
//70 anos podem adquirir apólices de seguros. Quanto às classes de ocupações
//foram definidos três grupos de risco. A tabela a seguir fornece as categorias
//em função da faixa de idade e do grupo de risco:
//Grupo de Risco Baixo Médio Alto
//18 a 24 7 8 9
//25 a 40 4 5 6
//41 a 70 1 2 3
//Faça um programa que receba a idade e o grupo de risco (b, m ou a) e
//determine e imprima o código do seguro.

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

int main(){
int idade;
char grupo,B,M,A;

printf("Digite sua idade: ");
scanf("%d",&idade);
printf("** Grupo de Risco **\n");
printf(" Digite B para Baixo\n");
printf(" Digite M para Medio\n");
printf(" Digite A para Alto\n");
printf("Digite seu Grupo de Risco: ");
scanf("%s",&grupo);


if (idade >=18 && idade <=24 && grupo ==
printf("o codigo do seguro he 7 \n");
if (idade >=18 && idade <=24 && grupo == M)
printf("o codigo do seguro he 8 \n");
if (idade >=18 && idade <=24 && grupo == A)
printf("o codigo do seguro he 9 \n");
if (idade >=25 && idade <=40 && grupo ==
printf("o codigo do seguro he 4\n");
if (idade >=25 && idade <=40 && grupo == M)
printf("o codigo do seguro he 5\n");
if (idade >=25 && idade <=40 && grupo == A)
printf("o codigo do seguro he 6\n");
if (idade >=41 && idade <=70 && grupo ==
printf("o codigo do seguro he 1 \n");
if (idade >=41 && idade <=70 && grupo == M)
printf("o codigo do seguro he 2 \n");
if (idade >=41 && idade <=70 && grupo == A)
printf("o codigo do seguro he 3 \n");

system("pause");


}

Link para o comentário
Compartilhar em outros sites

Dicas de programação -

tenho pouco tempo de programação, mas pelo q percebi os programas na linguagem C entendem que os laços com if estariam um dentro do outro, portanto seria aconselhável fazer o 'if else' no lugar do segundo 'if'. Dê uma lida neste link, http://informatica.hsw.uol.com.br/programacao-em-c8.htm

Depois de aprender estes looping, tente a função switch - case (escolha-caso), ela deixa o codigo mais curto.

Link para o comentário
Compartilhar em outros sites

1 - Como você vai pegar só um caracter, pode fazer %c ao invés de %s.

2 - Use "else if" ao invés de "if" simples, pois assim ao chegar ao correto, ele nem percorre mais os outros e te ganha tempo.

2.1 - Poderia usar um switch para ficar mais organizado

3 - Não está dando certo porque você está comparando com as variáveis B, M e A, que não contém nada. Na verdade você deveria comparar com os caracteres 'B', 'M' e 'A'.

Abaixo a correção:


//Uma companhia de seguros tem três categorias de seguros baseadas na idade e
//ocupação do segurado. Somente pessoas com pelo menos 18 anos e não mais de
//70 anos podem adquirir apólices de seguros. Quanto às classes de ocupações
//foram definidos três grupos de risco. A tabela a seguir fornece as categorias
//em função da faixa de idade e do grupo de risco:
//Grupo de Risco Baixo Médio Alto
//18 a 24 7 8 9
//25 a 40 4 5 6
//41 a 70 1 2 3
//Faça um programa que receba a idade e o grupo de risco (b, m ou a) e
//determine e imprima o código do seguro.

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

int main(){
int idade;
char grupo;

printf("Digite sua idade: ");
scanf("%d",&idade);
printf("** Grupo de Risco **\n");
printf(" Digite B para Baixo\n");
printf(" Digite M para Medio\n");
printf(" Digite A para Alto\n");
printf("Digite seu Grupo de Risco: ");
getchar();
scanf("%c",&grupo);


if (idade >=18 && idade <=24 && grupo == 'B')
printf("o codigo do seguro he 7 \n");
else if (idade >=18 && idade <=24 && grupo == 'M')
printf("o codigo do seguro he 8 \n");
else if (idade >=18 && idade <=24 && grupo == 'A')
printf("o codigo do seguro he 9 \n");
else if (idade >=25 && idade <=40 && grupo == 'B')
printf("o codigo do seguro he 4\n");
else if (idade >=25 && idade <=40 && grupo == 'M')
printf("o codigo do seguro he 5\n");
else if (idade >=25 && idade <=40 && grupo == 'A')
printf("o codigo do seguro he 6\n");
else if (idade >=41 && idade <=70 && grupo == 'B')
printf("o codigo do seguro he 1 \n");
else if (idade >=41 && idade <=70 && grupo == 'M')
printf("o codigo do seguro he 2 \n");
else if (idade >=41 && idade <=70 && grupo == 'A')
printf("o codigo do seguro he 3 \n");

system("pause");
return 0;
}

Abraço!

Link para o comentário
Compartilhar em outros sites

Obrigado fabriciocarraro,

faltava o else para poder separar os if's.

valeu pela resposta, o caminho estava certo, só faltando os detalhes que são importantes na hora de compilar.

Na verdade o programa funcionaria normalmente sem os else's, eles ajudam a economizar tempo pois como o fabricio disse quando chega o if certo, ele pula o resto. O problema mesmo estava nos If's que estavam usando variaveis nao declaradas como condição.

Link para o comentário
Compartilhar em outros sites

Na verdade o programa funcionaria normalmente sem os else's, eles ajudam a economizar tempo pois como o fabricio disse quando chega o if certo, ele pula o resto. O problema mesmo estava nos If's que estavam usando variaveis nao declaradas como condição.

isso mesmo task, eu declarei as variaveis e não precisava por não estar recebendo nenhum valor, e que tem hora que o cara se perde em algumas coisas, tenho uma lista de exercicios para fazer da facul e não alguns eu me perco com estes detalhes, é tanta coisa que não esta sobrando tempo pra nada, trabalho, provas da facul entre outras coisas a mais... mais valeu pelas dicas de vocês, e como sempre você me ajudando rsrsrsrs.

Abraços!!!

Link para o comentário
Compartilhar em outros sites

acredito que dessa maneira fica mais legivel.. ( minha opinião)


if (idade >=18 && idade <=24)
{
if (grupo == 'B')
printf("o codigo do seguro he 7 \n");
else if (grupo == 'M')
printf("o codigo do seguro he 8 \n");
else
printf("o codigo do seguro he 9 \n");
}
else if (idade <=40)
{
if (grupo == 'B')
printf("o codigo do seguro he 4\n");
else if (grupo == 'M')
printf("o codigo do seguro he 5\n");
else
printf("o codigo do seguro he 6\n");
}
else
{
if (grupo == 'B')
printf("o codigo do seguro he 1 \n");
else if (grupo == 'M')
printf("o codigo do seguro he 2 \n");
else
printf("o codigo do seguro he 3 \n");
}

Link para o comentário
Compartilhar em outros sites

acredito que dessa maneira fica mais legivel.. ( minha opinião)


if (idade >=18 && idade <=24)
{
if (grupo == 'B')
printf("o codigo do seguro he 7 \n");
else if (grupo == 'M')
printf("o codigo do seguro he 8 \n");
else
printf("o codigo do seguro he 9 \n");
}
else if (idade <=40)
{
if (grupo == 'B')
printf("o codigo do seguro he 4\n");
else if (grupo == 'M')
printf("o codigo do seguro he 5\n");
else
printf("o codigo do seguro he 6\n");
}
else
{
if (grupo == 'B')
printf("o codigo do seguro he 1 \n");
else if (grupo == 'M')
printf("o codigo do seguro he 2 \n");
else
printf("o codigo do seguro he 3 \n");
}

Sim, e poderia utilizar de switch no lugar dos IF's B,M e A

Link para o comentário
Compartilhar em outros sites

  • 3 anos depois...
Visitante
Este tópico está impedido de receber 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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!