Escreva uma função que dado um número real passado como parâmetro, retorne a parte inteira e a parte fracionária deste número. Escreva um programa que chama esta função. Protótipo:
void frac(float num, int* inteiro, float* frac);

Passo 1

O enunciado pede uma função em C que receba um número real e retorne sua parte inteira e parte fracionária usando ponteiros. O conteúdo envolve manipulação de tipos em C e operações aritméticas básicas.

Passo 2

Para obter a parte inteira de um número real em C, usamos cast para int: parteinteira = (int)num. Isso descarta a porção decimal.
A parte fracionária é simplesmente a diferença entre o valor original e a sua parte inteira: partefrac = num - parteinteira.

Passo 3

Implementamos a função frac conforme o protótipo, atribuindo os valores calculados aos ponteiros inteiro e frac.
No programa main, lemos um valor float do usuário, chamamos frac passando os endereços de variáveis para inteiro e fração, e exibimos na tela.

Resposta

#include <stdio.h>
void frac(float num, int *inteiro, float frac) {
/
parte inteira por truncamento */
inteiro = (int) num;
/
parte fracionária: diferença entre original e inteiro */
*frac = num - *inteiro;
}
int main() {
float valor, partef;
int partei;
printf("Digite um número real: ");
scanf("%f", &valor);

/* chama a função para obter inteiro e fracionária */
frac(valor, &partei, &partef);

printf("Parte inteira: %d\n", partei);
printf("Parte fracionária: %.6f\n", partef);

return 0;
}

Exercícios relacionados