2016-10-11 3 views
-8
#include <stdio.h> 
int main() 
{ 
    int t, w; 
    long int n, m, c, i, j, f = 0; 
    long long int b, s = 1; 
    scanf("%d",&t); 
    for(w = 1; w <= t; w++) 
    { 
     f = 0; 
     s = 1; 
     scanf("%ld %ld %ld",&n,&m,&c); 
     b = (long long int) n * m; 

     if (c > b) { 
      printf("%d\n",0); 
     } else { 
      for(i = 1; i <= n; i++) { 
       for(j = 1; j <= m; j++) { 
        s = i * j; 
        if (s == c) { 
         f++; 
         s = 1; 
        } 
       } 
       printf("%ld\n",f); 
      } 
     } 
     return 0; 
    } 
} 

Когда входы:Как отлаживать эту программу на больших входах?

1 
1000000 
1000000 
1000000 

Но выход, он не показывает значение ф. Почему вывод не показывает значение f? Есть ли какие-либо проблемы, связанные с типами данных, которые я использовал?

+2

Вы серьезно назвали свои переменные 't, w, n, m, c, i, j, f, b, s' ??? Как в мире мы должны понимать смысл этого кода? – abelenky

+1

'long' - это, как правило, 32-битный тип данных, поэтому +/- 2147483647. вы прошли мимо него с' 1000000000000'. вы, вероятно, хотите долгое время, которое должно быть 64 бит. –

+0

так как я могу это получить? @MarcB –

ответ

1

По крайней мере эта часть кажется подозрительной.

Вы писали:

if(s==c) 
    f++; 
    s=1; 

Из-за вашего отступа, я думаю, что вы пытаетесь написать:

if(s==c) 
{ 
    f++; 
    s=1; 
} 

Но то, что вы на самом деле написали:

if(s==c) 
{ 
    f++; 
} 
s=1; 

основе ваш отступ, я предполагаю, что это не то, что вы намеревались.

+0

, если в теле if есть только один оператор, тогда нет необходимости {}. –

+1

abelenky знает это. (S) он написал «подозрительный» –

+0

, но там нет ничего подозрительного. –

Смежные вопросы