Jump to content

Programa muito básico em C


NosferatuPT
 Share

Recommended Posts

Boas!

Gostaria que me ajudassem a fazer um programa onde se peça um inteiro e calcule a soma dos seus dígitos.

Eu sei fazer programas um pouco mais básicos que este, do tipo pedir 2 inteiros e somá-los... agora, não consigo compreender como fazer para ele ler os dígitos um a um. Estou habituado a que, quando se declara um inteiro, funcione como um todo.

Link to comment
Share on other sites

Exacto. E para isso usas um ciclo em que somas o valor de cada dígito até não existam mais dígitos.

Ok. Então posso utilizar um do.. while?

Eu percebi a ideia..mas está a ser difícil executá-la.. desculpem a noobice =P Isto deve ser mesmo básico..

Estou a entrar em parafuso..

Eu percebo o conceito de divisão para obter o quociente e para obter o resto. Consigo aplicá-la se tiver 2 dígitos. Mas com mais, terei de fazer um ciclo. Podes dar-me uma pista sobre como o fazer?

EDIT: Eu estive a pensar.. dentro do while devo ter de fazer qlquer coisa do género: como o meu objectivo é chegar ao primeiro dígito através das divisões, tenho de limitar a divisão até à gama desse dígito. Será entre 0 e 9, certo?

Mas mesmo assim está a ser complicado escrever..

Link to comment
Share on other sites

Basta usares um ciclo, vais dividindo até até a divisão ser zero. Imagina 125:

125/10 = 12,5 apanhas o 5 e guardas.

12/10 = 1.2 apanhas o 2 e guardas

1/10 = 0.1 apanhas o 1 e guardas. Entendes? 🙂

Ahhh! Eu estava a ficar um pouco confuso... comecei a pensar assim: Faço 125 % 10 e tenho o 5. Depois divido outra vez por 10 e já tenho o primeiro dígito.. só que agora teria de multiplicar por 10 para ter o 2º....

Eu faço uma enooorme confusão de uma coisa tão simples...

Muito obrigado 🙂

Link to comment
Share on other sites

Se fizeres 125%10 tens o cinco, e se depois dividires por dez ficas com 12. Ou seja, basta fazeres novamente o resto da divisão inteira por 10 para obteres o 2. Não estou a ver onde é que foste buscar a multiplicação por 10.

Já agora, outra alternativa, sem divisões (apenas com restos), é ires fazendo o resto da divisão inteira por 10, por 100, por 1000, por 10000, etc. Ou seja, começas com o divisor=10, e em cada iteração fazes divisor=divisor*10. Acho que esta solução ainda deve ser das que dá código mais simples.

Link to comment
Share on other sites

Se fizeres 125%10 tens o cinco, e se depois dividires por dez ficas com 12. Ou seja, basta fazeres novamente o resta da divisão inteira por 10 para obteres o 2. Não estou a ver onde é que foste buscar a multiplicação por 10.

Já agora, outra alternativa, sem divisões (apenas com restos), é ires fazendo o resto da divisão inteira por 10, por 100, por 1000, por 10000, etc. Ou seja, começas com o divisor=10, e em cada iteração fazes divisor=divisor*10. Acho que esta solução ainda deve ser das que dá código mais simples.

Também não sei aonde fui buscar...  🙂

Muito obrigado  🙂

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.