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