digital flip

/ *
Dado un número entero,
por favor, en el número digital obtenida mediante la inversión de cada bit de un nuevo número.
El nuevo número también debe cumplir forma común de números enteros,
es decir, a no ser que le dio el número original es cero,
de lo contrario la inversa para obtener el mayor número de nuevos dígitos no debe ser cero * /


El problema es cómo eliminar la dificultad de que en el comienzo de la tapa 0
primero 10% puede ser = 0 directamente después de la cancelación en el digital de cola 0
(es decir, mientras que (n% 10 = 0) n / = 10
segundo, hasta que cada dígito I reveses almacenados en la matriz
y luego revertir de nuevo para determinar si el uso mientras que 0
si es 0 para determinar el siguiente
hasta después de la salida no cero


#include<stdio.h>
int main()
{
	int n,a[11],i=0,count=0;
	scanf("%d",&n);
	if(n<0){
		n=-n;
		printf("-");
	} 
	while(n>9){
		a[i]=n%10;
		n/=10;
		i++;
		count++;
	}
	a[i]=n;
	i=0;
	while(a[i]==0) i++;
	for(;i<=count;i++) printf("%d",a[i]);
	return 0;
}
Publicado 22 artículos originales · ganado elogios 1 · vistas 1061

Supongo que te gusta

Origin blog.csdn.net/Doro_/article/details/100862574
Recomendado
Clasificación