Jump to content

Recommended Posts

Posted

Olá!

Estou a fazer um trabalho em linguagem C que permita fazer uma calculadora. 
Ou seja, supondo que eu faço 1+3+5, ela tem de devolver o resultado, que é 9.
Mas não tenho ideia de como identificar o que são números e o que são operadores.
E mais, não sei como distinguir os números e os algarismos. Por exemplo, se eu fizer 100+100+100, não sei como identificar cada parcela como um único número.
Tenho de fazer no mínimo para 3 operandos. 

Algum me pode dar uma ajuda, por favor?
Desde já obrigado.

Cumps.

Posted

eu estou a tentar não dar a minha solucao favorita porque desconfio que não ias pescar nada do que ia dizer. No entanto, seria de esperar que já tivesses conhecimentos de como ler uma string. O que disse foi usar a função sscanf para facilmente leres os números e/ou os operadores

IRC : sim, é algo que ainda existe >> #p@p
Posted

Eu acho que a documentação do scanf é bastante má, especialmente para iniciantes. Eu próprio achei aquilo incompreensível até já dominar um pouco a linguagem e a própria função.

Tens aqui alguns exemplos de um uso mais avançado do scanf (não perdi muito tempo a procurar, pode haver melhor tutoriais na net). Se conseguires compreender o seu uso, ficas mais perto de conseguires ler e compreender a documentação do scanf.

Basicamente tu podes usar o scanf para ler múltiplos valores de uma só linha, limitando mesmo os caracteres que podes ler ou não. O valor que o scanf te retorna é exactamente o número de parâmetros correctamente lidos, a partir do qual podes decidir se a linha foi correctamente lida ou não.

Outra dica, o scanf lê-te os parametros a partir do stdin (consola), ao passo que o sscanf faz o mesmo de uma string que tu lhe passes como argumento. Isto pode ser importante na organização do teu código.

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