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;
}