quarta-feira, 31 de outubro de 2012

Programação C

Srs alunos:

Segue a solução do exercício:

Elabore uma função (e um programa para testá-la) que solicite um número inteiro ao usuário e crie um novo número inteiro com os dígitos em ordem inversa. Por exemplo, uma execução do programa é:

Digite um número inteiro: 5382

Seu número invertido é:   2385


----------------------------------------------------------------------- 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* Elabore um programa que solicite um número inteiro ao usuário
 e crie um novo número inteiro com o s dígitos em ordem inversa.
 Por exemplo, uma execução do programa é:

Digite um número inteiro: 5382
Seu número invertido é:   2385 */

int inverte (unsigned int,unsigned int); // protótipo da função

int main()
{   unsigned int N_inv , num, peso=1,num_digitos,i;
    char num_string[10];
    printf("Digite um um numero inteiro: ");
    gets(num_string);
    num_digitos=strlen(num_string); // descobre o numero de digitos
    num=atoi(num_string);
    for(i=1;i<num_digitos;i++)peso=peso*10; // determina o peso maximo
    N_inv=inverte(num,peso);
    printf("\nSeu n\xA3mero invertido \x82:   %d",N_inv);
    return 0;
}

int inverte (unsigned int num, unsigned int peso)
{   unsigned int num_inv=0,resto;
    while(num>0)
    {
        resto=num%10;   // obtem o resto
        num=num/10;     // atualiza numero
        num_inv = num_inv + peso*resto; // compoe o numero
        peso=peso/10;    // atualiza o peso
    }
    return num_inv;
}

Nenhum comentário:

Postar um comentário