Gurzi Posted December 18, 2005 at 11:45 AM Report #8791 Posted December 18, 2005 at 11:45 AM #include <stdio.h> #include <stdlib.h> int x_isdigit(char ch) { return (ch >='0' && ch <= '9'); } main() { char c; while(1) { c=getchar(); if (!x_isdigit(c)) putchar(c); } system("PAUSE"); } alguem me explica isto ? não consigo perceber como funciona nem o que faz o while(1) // o Damas diz que Termina com CTRL-C , fiquei na mesma pág 182 luis Damas C
Solution deathseeker25 Posted December 18, 2005 at 12:00 PM Solution Report #8793 Posted December 18, 2005 at 12:00 PM Esta é fácil de explicar. Então vamos lá tentar explicar isto por blocos: int x_isdigit(char ch) { return (ch >='0' && ch <= '9'); } Ora, isto é uma função que é criada de forma a definir as "permissões" da posterior introdução de dados. O programa só irá aceitar números entre 0 e 9, como sendo dígitos (is_digit). Daí vem a instrução "return(ch>='0' && ch<='9')". main() { char c; A variável c aceitará caracteres e servirá para armazenar o caracter introduzido. while(1) { c=getchar(); if (!x_isdigit(c)) putchar(c); } O while(1) é um ciclo infinito, isto é, enquanto fores introduzindo caracteres e a função for lendo esses caracteres conforme os parametros da função is_digit, vais voltar sempre ao início, até fechares o programa. Como ali está escrito, o c vai servir para armazenar o caracter introduzido (getchar() ). Se o numero introduzido e armazenado em 'c' for um digito entre 0 e 9 ( if(!x_is_digit© ) o programa coloca no ecrã esse dígito. O while (1) é uma condição criada para que surta um efeito de instrução infinita, até se fechar o programa á "bruta".
Gurzi Posted December 18, 2005 at 12:56 PM Author Report #8797 Posted December 18, 2005 at 12:56 PM bem visto, agora ja percebi.. ele so vai retomar se n for um digito de 0 a 9 devido ao if(!is_digit) como poes a syntax de c aqui ?
deathseeker25 Posted December 18, 2005 at 01:03 PM Report #8798 Posted December 18, 2005 at 01:03 PM bem visto, agora ja percebi.. ele so vai retomar se n for um digito de 0 a 9 devido ao if(!is_digit) como poes a syntax de c aqui ? No próprio painel do bbcode quando estás a fazer um post, tem lá uma secção a dizer GeShi. Carregas aí e escolhes as linguagens. Podes fazer manualmente através dos comandos "['code='linguagem]'[/ code]". (sem as plicas...) Cumps
saramgsilva Posted December 18, 2005 at 03:06 PM Report #8801 Posted December 18, 2005 at 03:06 PM observação : podes ver no damas...que existe uma função propria, numa das bibliotecas de C, para verificar se é um digito.... (nao importante neste caso... ) 😛 www.saramgsilva.com As minhas apps no WP7 Marketplace Youtube : Galinho - Windows Phone 7.5
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now