I have to do a program that evaluates if the digits of a number are alternatingly evens and odds. Example = 23232, 1234, 9634, etc.
The problem is that in this part:Code:#include <stdio.h> int main() { int a; int cont=0; printf("Ingrese un entero :"); scanf("%i",&a); int temp=a; while(temp>0) { temp=temp/10; cont++; } printf("\n Número de dígitos : %d",cont); int arr[cont], dig=(temp%10), i=0; temp=a; while (i<cont){ if (dig%2==0){ arr[i]=0; i++; temp=temp/10; dig=temp%10;} else if (dig%2!=0){ arr[i]=1; i++; temp=temp/10; dig=temp%10;} } i=0; int t=(i+1), alter; while (i<cont){ if (arr[i]!=arr[t]){ alter=1; i++; t++;} else{ alter=0; i++; t++;} } if (alter==1) printf ("\n El número sí es alternante"); else printf ("\n El número no es alternante"); i=0; // I did this to see if it detection of even or odds worked right while (i<cont){ printf ("\n %i (0=par, 1=impar)", arr[i]); i++; } }
The first digit to enter will always be taken as an even one, and I don't know why.Code:while (i<cont){ if (dig%2==0){ arr[i]=0; i++; temp=temp/10; dig=temp%10;} else if (dig%2!=0){ arr[i]=1; i++; temp=temp/10; dig=temp%10;} }



LinkBack URL
About LinkBacks


