#include <cstdio>
#include <cstdlib>
using namespace std;
int main()
{
int numero, c = 0, *num_pares = NULL, *num_impares = NULL, c_par = 0, c_impar = 0;
num_pares = (int*)malloc(sizeof(int));
num_impares = (int*)malloc(sizeof(int));
do{
printf("Insira um numero inteiro: ");
scanf("%d", &numero);
c++;
if(numero != -1){
if(numero >= 0 && numero <= 100){
if(numero % 2 == 0){
num_pares = (int*)realloc(num_pares, c * sizeof(int));
if(num_pares != NULL){
num_pares[c_par] = numero;
}else{
printf("Memoria insuficiente!\n");
exit(1);
}
c_par++;
}else{
num_impares = (int*)realloc(num_impares, c * sizeof(int));
if(num_impares != NULL){
num_impares[c_impar] = numero;
}else{
printf("Memoria insuficiente!\n");
exit(1);
}
c_impar++;
}
}else{
printf("Numero fora do intervalo permitido [0-100], tente novamente.\n");
}
}
}while(c < 10 && numero != -1);
printf("\nForam digitados %d numeros\n\n", c);
printf("Numeros pares: ");
if(c_par != 0){
for(int i = 0; i < c_par; i++){
printf("%d ", num_pares[i]);
}
}else{
printf("nenhum numero par\n");
}
printf("\nNumeros impares: ");
if(c_impar != 0){
for(int i = 0; i < c_impar; i++){
printf("%d ", num_impares[i]);
}
}else{
printf("nenhum numero impar\n");
}
free(num_pares);
free(num_impares);
return 0;
}
Funcionou?