Jump to content
diogoazevedo

Ler um numero inteiro e indicar qual o seu maior digito e em que posiçao ocorr

Recommended Posts

diogoazevedo

Boa tarde

Estou a dar os meus primeiros passos em programação em C. Tenho que fazer um programa que leia um inteiro e indique qual o seu maior digito e em que posicao ocorre. Caso esse digito ocorra em mais do que uma posicao o programa deve imprimir a posicao mais à direita.

EX:    num: 3493592

          print(O maior digito é o 9 e ocorreu na posicao 2)

Eu pensei em usar a operação % para obter cada algarismo em separado e depois usaria if-else para comparar os diferentes digitos. Mas apenas iria ter o maior algarismo e nao a posição. Estou mesmo com duvidas neste exercicio.

Nao pretendo que me enviem o código feito. Apenas queria uma ajudinha a desenvolver o algoritmo.

Muito obrigado!

Share this post


Link to post
Share on other sites
pedrosorio

Usar a operação % é uma excelente ideia para conseguir obter um dígito, mais precisamente para obter o dígito das unidades de um número - já agora, se tens um inteiro n qual é a operação que tens que fazer para obter o dígito das unidades?

E como é que consegues obter os algarismos nas outras posições? Provavelmente terás que usar um ciclo, já pensaste nisso?


Não respondo a dúvidas por mensagem.

Share this post


Link to post
Share on other sites
KTachyon

Com o % consegues. Podes utilizar um while para percorrer todos os dígitos e utilizas uma variável para contar a posição do dígito em que te encontras. Quando encontras um dígito maior, registas essa posição para outra variável.


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
diogoazevedo

Ja consegui resolver o problema. Usei um ciclo while e um contador. Foi bem mais simples do que inicialmente pensei. Obrigado pela ajuda

Share this post


Link to post
Share on other sites
bubulindo

Quando leres o número vindo do terminal, ele virá no formato de string... logo, para fazer a operação % tens de converter a string para numero.

O ideal é percorrer todas as posições da string e guardar o número com o valor mais lato. Assim podes também testar se o caracter é um número ou uma letra e descartá-lo.


include <ai se te avio>

Mãe () {

}

Share this post


Link to post
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

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