Ir ao conteúdo

Posts recomendados

Postado

preciso adicionar uma mensagem de erro caso a pessoa informe um dado inválido, porém tem alguma coisa errada e ela não roda corretamente, ja tentei mudar de todas as formas e ainda não descobri, é urgente por favor 

esse é meu cod---

 

 

 

#include <stdio.h>

 

int main(void) {

char cor, B, P, D, I, A;

int quantB, quantP, quantD, quantI, quantA;

int idade, idadeB, idadePD;

int menorIdade, maiorIdade;

 

for (int i =1; i <=10; i++){

printf("Que cor você se identifica (B) branca, (P) preta, (D) parda, (I) indígena ou (A) amarela. \n");

scanf("%c", &cor);

printf("Informe sua idade \n");

scanf("%d", &idade);

 

while (cor != B || cor != P || cor != D || cor != I || cor != A){

printf("Informação inválida, digite umas das opções (B) branca, (P) preta, (D) parda, (I) indígena ou (A) amarela \n");

}

}

if (cor == B){

quantB++;

}

printf("Quantidade de pessoas Brancas %d \n", quantB);

if (cor == P){

quantP++;

}

printf("Quantidade de pessoas Pretas %d \n", quantP);

 

if (cor == D){

quantD++;

}

printf("Quantidade de pessoas Pardas %d \n", quantD);

if (cor == I){

quantI++;

}

printf("Quantidade de pessoas Indígenas %d \n", quantI);

if (cor == A){

quantA++;

}

printf("Quantidade de pessoas Amarelas %d \n", quantA);

if (cor == B && idade >= 65){

idadeB++;

}

printf ("Quantidade de pessoas brancas com 65 anos ou mais %d \n", idadeB);

 

if (cor == P || cor ==D && idade >= 65){

idadePD++;

}

printf("Quantidade de pessoas pretas ou pardas com 65 anos ou mais %d \n", idadePD);

 

if (menorIdade > idade){

menorIdade= idade;

}

if (maiorIdade < idade){

maiorIdade=idade;

}

printf("Maior idade %d \n", maiorIdade);

printf("Menor idade %d \n", menorIdade);

return 0;

}

Postado

Oi @andrieli.m31

20 minutos atrás, andrieli.m31 disse:

preciso adicionar uma mensagem de erro caso a pessoa informe um dado inválido, porém tem alguma coisa errada e ela não roda corretamente, ja tentei mudar de todas as formas e ainda não descobri, é urgente por favor 

 

Vi que seu código esta entrando em um loop infinito ao receber uma opção diferente das que foram cadastradas.

O que você poderia fazer nesse caso, seria usar o else if e o else, dessa forma:

 

for(i = 0; i <= 10; i++){
    printf("Que cor você se identifica (B) branca, (P) preta, (D) parda, (I) indígena ou (A) amarela. \n");
    scanf(" %c", &cor);
    printf("Informe sua idade \n");
    scanf("%d", &idade);

    if(cor == 'B' || cor =='b'){
        quantB++;
    }
    else if(cor == 'P' || cor == 'p'){
      quantP++;
    }
    else{
      printf("\nInformação inválida, digite umas das opções (B) branca, (P) preta, (D) parda, (I) indígena ou (A) amarela \n\n");
    }
    
  }

 

O código acima ira executar dez vezes, nas dez vezes ele vai pedir que o usuário digite a cor com que ele se identifica e a sua idade, depois disso o código vai verificar se o que foi digitado corresponde com as opções cadastradas e se não ele retornara ao usuário uma mensagem informando que a entrada foi invalida.

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!