123456
Pares: 246
Impar: 135
Código:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define N 6
int main( void )
{
int c,
i,
n,
par=0,
impar=0,
acupar=0,
acuimpar=0;
int digitos[N];
unsigned long long int num;
printf( "Escribe un numero de %d digitos como maximo: ", N );
fflush( stdout );
num = 0;
for( n = 0; n < N && (c = getchar()) != '\n'; n++ )
{
digitos[n] = c - '0';
num *= 10;
num += digitos[n];
}
printf("%d\n", num);
for( i = 0; i < n; ++i )
if(digitos[i]%2==0)
{
printf("es Par: %d\n", digitos[i]);
acupar+=digitos[i]*pow(10,par);
par++;
}
else
{
printf("es imPar: %d\n", digitos[i]);
acuimpar+=digitos[i]*pow(10,impar);
impar++;
}
printf("\npar:%d",par);
printf("\nimpar:%d",impar);
printf("\n acupar %d",acupar);
printf("\n acuimpar %d",acuimpar);
return 0;
}
Con el programa que yo escribi quería que quede el numero par e impar dado vuelta y despues ponerlo bien.
123456
Queda así 642
531
Con ese ejemplo funciona pero si pongo 123444, queda asi
4441 (en vez de 4442)
31
No entiendo porque no funciona