Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
Joao brandao

Exercicio - ajuda

Recommended Posts

Joao brandao


#include <stdio.h>
#include <stdlib.h>

int main()
{
    int num,final,r;
    scanf("%d",&num);  // 407
    final=0;
    while(num>0); //407>0
    {
     r=num % 10; // 407 mod 10 = 7(r)
     num=num/10;  // 407 / 10 =40(num)
     final=(r*r*r)+final; // exemplo: (7*7*7)+0
    }
    if(final==num)
     printf("SIM");
     else
     printf("NAO");
    getchar();
    getchar();
  return 0;
}

Enuciado:

Um número é de Amstrong se a soma dos cubos dos seus dígitos é igual

a esse número, por exemplo 407=4^3 + 0^3+ 7^3.

da me erro porque quando é mais de 3 digitos n me da nada :-S  e para poder dar é preciso  colocar '0' no 0 do while. (  while(num>'0')  )

1 Duvida

é preciso colar '0', n quero ler como string mas sim como int o 0, alguem me sabe dizer pk isto esta a dar com '0' e sem' ' nao da?

2 Duvida

Qual é o problema do exercicio para n entrar no ciclo while?  pela minha logica o exercicio esta certo, deveria de dar

Share this post


Link to post
Share on other sites
pmg

Experimenta imprimir os valores antes do if

    /* ... */
    printf("comparando final (%d) e num (%d)\n", final, num);
    if(final==num)
    /* ... */


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Share this post


Link to post
Share on other sites
HappyHippyHippo

apanhado pelo erro mais comum em todos os programadores : o caracter ';'

    while(num>0); //407>0

tão pequeno mas muito significante


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

Share this post


Link to post
Share on other sites
Joao brandao

apanhado pelo erro mais comum em todos os programadores : o caracter ';'

    while(num>0); //407>0

tão pequeno mas muito significante

eu so coloquei o '0' aqui no post porque no meu programa n tenho o '0' mas sim 0.

Share this post


Link to post
Share on other sites
Joao brandao

o problema é que quando tem mais que 3 digitos n entra no ciclo  :bored: n sei porque é que isto acontece..

Share this post


Link to post
Share on other sites
Joao brandao

omfg n acredito que fo por causa disto que n dava lol que erro estupido da minha parte :-S

obrigado aqueles que ajudaram

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
Sign in to follow this  

×

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.