Ir ao conteúdo

Problema em um exercício em C


Maickon

Posts recomendados

Postado

Eae galera, tentei fazer o exercicio de programação abaixo e na hora de compilar(CodeBlocks) o resultado sai errado, não está comparando a string corretamente.

Exercicio: Faça um algoritmo que leia os dados de um usuário de telefonia de uma empresa de telecomunicações: bairro e número completo do telefone e verifique se o numero do telefone (exemplo:2121212) está correto, ou seja, se o prefixo(3 primeiros dígitos) é correspondente ao bairro

especificado. Sabendo-se que os prefixos existem nos bairros conforme a tabela abaixo:

-------- BAIRRO: ------------------ PREFIXO:

OESTE,VILA NOVA,COIMBRA-----------223,225,212,243

CENTRO,UNIVERSITARIO,SUL----------223,224,215,295

BUENO,CAMPINAS,LESTE--------------215,212,291,268

Exemplo:

Entrada:

BUENO

2916737

Saída:

O TELEFONE ESTA CORRETO

AQUI ESTÁ MEU ALGORITMO:

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

int main()

{

int num,n1,n2,n3,pfx;

char br[20];

scanf("%s",&br);

scanf("%d",&num);

n1=num/1000000;

n2=(num%1000000)/100000;

n3=((num%1000000)%100000)/10000;

pfx=(n1*100)+(n2*10)+n3;

if(strcmp(br,"OESTE")==0||strcmp(br,"VILA NOVA")==0||strcmp(br,"COIMBRA")==0&&pfx==223||pfx==225||pfx==212||pfx==243)

{

printf("O TELEFONE ESTA CORRETO\n");

}

else if(strcmp(br,"OESTE")==0||strcmp(br,"VILA NOVA")==0||strcmp(br,"COIMBRA")==0&&pfx!=223||pfx!=225||pfx!=212||pfx!=243)

{

printf("O TELEFONE NAO ESTA CORRETO\n");

}

else if(strcmp(br,"CENTRO")==0||strcmp(br,"UNIVERSITARIO")==0||strcmp(br,"SUL")==0&&pfx==223||pfx==224||pfx==215||pfx==295)

{

printf("O TELEFONE ESTA CORRETO\n");

}

else if(strcmp(br,"CENTRO")==0||strcmp(br,"UNIVERSITARIO")==0||strcmp(br,"SUL")==0&&pfx!=223||pfx!=224||pfx!=215||pfx!=295)

{

printf("O TELEFONE NAO ESTA CORRETO\n");

}

else if(strcmp(br,"BUENO")==0||strcmp(br,"CAMPINAS")==0||strcmp(br,"LESTE")==0&&pfx==215||pfx==212||pfx==291||pfx==268)

{

printf("O TELEFONE ESTA CORRETO\n");

}

else if(strcmp(br,"BUENO")==0||strcmp(br,"CAMPINAS")==0||strcmp(br,"LESTE")==0&&pfx!=215||pfx!=212||pfx!=291||pfx!=268)

{

printf("O TELEFONE NAO ESTA CORRETO\n");

}

return 0;

}

Fiz um teste em que uso o exemplo acima dando o bairro como BUENO e o numero 2916737 como entrada mas após o processamento fala que O TELEFONE NAO ESTA CORRETO, quando deveria estar já que o começo dele é 291 e está incluido no prefixo do bairro bueno de acordo com a tabela.

Me ajudem a encontar o erro ae galera por favor!

Postado

Boa tarde, o seguinte teste funciona perfeitamente, você pode se espelhar nele para encontrar o erro.

if((strcmp(br,"BUENO") == 0) && ((pfx == 215) || (pfx == 212) || (pfx == 291) || (pfx == 268)))

{

printf("O telefone está correto.");

}

Espero ter ajudado. Fique à vontade sobre qualquer dúvida.

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!