2015-02-22 3 views
-1

Я новичок в C++. Я написал программу, которая использует тип данных unsigned long long int.Ошибка при печати long long int

Я не в состоянии напечатать переменную правильно

вот код:

#include <cmath> 
#include <cstdio> 
#include <vector> 
#include <iostream> 
#include <algorithm> 
#include <math.h> 
using namespace std; 


int main() { 
    /* Enter your code here. Read input from STDIN. Print output to STDOUT */ 
    int t ; 
    int x = scanf("%d",&t); 

    unsigned long long int a,b,c; 
    unsigned long long int counter,n ,mod = pow(10,9)+7; 

    while (t>0){ 
     int y = scanf("%llu,%llu,%llu",&a,&b,&n); 
     //printf("%llu\n",a); 
     if (n == 1){ 
       printf("%llu",b); 
      }else if (n == 0){ 
       printf("%llu",a); 
      }else{ 
       c = 0; 
      counter =2; 
      while (counter <= n){ 
       c = a+b; 
       a = b; 
       b = c; 
       ++counter; 
      } 
      if (c>mod) 
       c=c-mod; 
      printf("%llu",c); 
     } 
     --t; 
    }  
    return 0; 
} 

Стандартный вход:

8 
2 3 1 
9 1 7 
9 8 3 
2 4 9 
1 7 2 
1 8 1 
4 3 1 
3 7 5 

Ожидаемый результат:

3 
85 
25 
178 
8 
8 
3 
44 

Соблюдается вывод:

23191798 
+0

Что вы наблюдаете при вводе кода в свой код с помощью отладчика? –

+0

Я пишу код в онлайн-среде. Я не могу использовать там отладчик. Почему нисходящий? Я все еще начинаю, может быть, я что-то пропустил –

+1

_ «возможно, я чего-то не хватает» _ Да, отладка. SO не является онлайн-службой отладки. –

ответ

1

В отличие от println функции в Java, printf делает не добавить разрыв строки.
Если вы хотите, чтобы это добавило '\ n' к вашей строке.

printf("some text\n");