Porque está printando idade como float? pega a idade com o %d
Peguei seu código e fiz essa simples modificação, rodei e o resultado foi satisfatório.
#include <stdio.h>
#include <locale.h>
#include <stdlib.h>
int main(){
setlocale(LC_ALL, "Portuguese");
system("chcp 65001");
char nome[50];
char sobrenome[50];
int idade;
float altura;
printf("Digite seu nome: ");
scanf("%s", nome);
printf("Digite seu sobrenome: ");
scanf("%s", sobrenome);
printf("Qual é a sua idade? ");
scanf("%d", &idade);
printf("Qual é a sua altura? ");
scanf("%f", &altura);
printf("\nNome: %s\nSobrenome: %s\nIdade: %d\nAltura: %.2f\n", nome, sobrenome, idade, altura);
return 0;
}