Jump to content

[RESOLVIDO]Duvida no codigo


miguelt1
 Share

Recommended Posts

O problema é o seguinte:

Escreva a função x_isdigit que verifica se um determinado caractere é digito ou nao. Escreva um programa de teste da função.

#include <stdio.h>

x_isdigit(char ch);

main() {
  char ch;
  printf("Digite um numero ou um caractere: "); scanf("%d",&ch);

  if(x_isdigit(ch)==ch)
  printf("Entao e um digito!");
  else
  printf("E um caractere!");
}

int x_isdigit(char ch) {
  return (ch>='0' && ch<='9');
}

O problema é que o codigo faz o contrario que pretendo se meto um digito ele diz que e um caractere e vice-versa. Ajudem please.

Se me pudessem indicar o que está errado agradecia imenso preciso de resolver isto para avançar no meu estudo na linguagem C.

Edited by miguelt1
Link to comment
Share on other sites

HappyHippyHippo

o problema já te foi dito : está na avaliação do "if"

pelo que dás a entender, não foste tu que realizaste o código da função x_isdigit, no entanto, apesar de isso ser um ponto negativo a teu desproveito, nada invalida de pensares na pergunta que te foi feita:

que valor é retornado pela função x_isdigit ?

ao responderes a esta questão correctamente, a solução passa a ser trivial.

além disso a dita para chegares à conclusão já te foi dada:

se estás a fazer comparações booleanas o resultado nunca será um valor entre 0 e 9

  • Vote 1
IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

o problema já te foi dito : está na avaliação do "if"

pelo que dás a entender, não foste tu que realizaste o código da função x_isdigit, no entanto, apesar de isso ser um ponto negativo a teu desproveito, nada invalida de pensares na pergunta que te foi feita:

ao responderes a esta questão correctamente, a solução passa a ser trivial.

além disso a dita para chegares à conclusão já te foi dada:

ja resolvi o problema obrigado.

o codigo ficou assim:

#include <stdio.h>
char x_isdigit(char ch) {
return (ch>='0' && ch<='9');
}
main() {
char c;
printf("Digite um digito ou um caractere: ");
scanf("%c",&c);

if(x_isdigit(c))
 printf("E um numero!");
else
 printf("E um caractere!");


}

apesar de isso ser um ponto negativo a teu desproveito

No entanto não entendi essa afirmação dado que estou aprender pelo livro do luis damas e ele tinha a resolução de outra forma então eu decidi fazer à minha maneira. Não entendo de que maneira seria um "desproveito" para mim. Mas obrigado na mesma.

Link to comment
Share on other sites

HappyHippyHippo

quando apresentas um código do qual não sabes o que ele faz, a única ilação que se pode auferir é que não foste tu que realizaste o código.

isto porque o código está correcto, mas falhas completamente ao utilizar-lo demonstrando uma incoerência anormal no processo de criação.

quando digo um ponto negativo, refiro-me a dois pontos de vista:

- imagem que apresentas ao não usares código idealizado por ti, mas sim, copiado de outrem

- inércia demonstrada em tentares perceber o que realmente se passa com o código que estás a usar

por outras palavras, não existe problema em usar código de outra pessoa caso dois pontos sejam obtidos. sendo esses pontos, o reconhecimento do autor desse mesmo código e o conhecimento suficiente para o utilizar sem problemas.

  • Vote 1
IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.