Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/10/2011, 17:33
rotsen24154
 
Fecha de Ingreso: abril-2010
Mensajes: 14
Antigüedad: 14 años, 10 meses
Puntos: 0
Problema con ejercicio de juez en linea

Tengo este problema:

Dados dos numeros, a y b, donde siempre a <= b, contar cuantos 1's hay en una cuenta progresiva desde a hasta b (incluyendo a y b). Es decir si a = 5 y b = 11, la respuesta seria 3. Hay un uno en "10", y hay dos unos en "11".

El archivo de entrada (data.in) contendra un entero n, donde 0 < n < 1000, que indicara los casos de prueba siguientes. Las siguentes n lineas contendran dos enteros separados por un espacio indicando a y b respectivamente. La salida seran n lineas conteniendo el numero de unos que se aparecen en la cuenta de a hasta b.

Ejemplo
Entrada(data.in):
3
0 1
2 9
0 10

Salida(data.out):
1
0
2

Según yo ya tengo el código y funciona bien, pero el juez en linea me lo marca como incorrecto =( no se si me puedan ayudar a encontrar mi error por favor

Código:
#include <stdio.h>

int main()
{
	int a,b,i,div,cont=0,rep,j;
	FILE *in, *out; 
	in = fopen("data.in", "r"); 
	out = fopen("data.out", "w"); 
	fscanf(in,"%d",&rep);
	for(j=0;j<rep;j++){
		fscanf(in,"%d %d",&a,&b);
		for(i=a;i<=b;i++)
		{	
			div=i;
			do{
				if(div%10 == 1)
					cont++;
				div=div/10;
				if(div<=0) 
					break;
			}while(1);
		}
		if(j!=rep)
		fprintf(out,"%d\n",cont);
		else
			fprintf(out,"%d",cont);
		cont=0;
	}
	fclose(in);
	fclose(out);
	return 0;
}