terça-feira, 6 de novembro de 2012

Programação C

Srs alunos:

Segue a solução do exercício abaixo, agora utilizando uma função recursiva:

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(int num, int peso)
{  int resto;
   if(num>0)
    {   resto=num%10;  
        return peso*resto + inverte(num/10,peso/10);
    }
    else return 0;
}


int main()
{   unsigned int num_inv = 0, 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
    num_inv=inverte(num,peso);
    printf("\nSeu n\xA3mero invertido \x82:   %d",num_inv);
    return 0;

Nenhum comentário:

Postar um comentário