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





Autor



En línea





