Переход с Pascal на С++

Решил изучать С++, почитал книжек и т.д. Решил сдать задачу на одном сайте. Написал код:
/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .pascal.geshi_code {font-family:monospace;} .pascal.geshi_code .imp {font-weight: bold; color: red;} .pascal.geshi_code .kw1 {color: #000000; font-weight: bold;} .pascal.geshi_code .kw2 {color: #000000; font-weight: bold;} .pascal.geshi_code .kw3 {color: #000066;} .pascal.geshi_code .kw4 {color: #000066; font-weight: bold;} .pascal.geshi_code .co1 {color: #666666; font-style: italic;} .pascal.geshi_code .coMULTI {color: #666666; font-style: italic;} .pascal.geshi_code .es0 {color: #000099; font-weight: bold;} .pascal.geshi_code .es_h {color: #000099; font-weight: bold;} .pascal.geshi_code .br0 {color: #009900;} .pascal.geshi_code .sy0 {color: #339933;} .pascal.geshi_code .st0 {color: #ff0000;} .pascal.geshi_code .st_h {color: #ff0000;} .pascal.geshi_code .nu0 {color: #cc66cc;} .pascal.geshi_code .me1 {color: #0066ee;} .pascal.geshi_code span.xtra { display:block; }

Program my;
    var a,b,c,n : longint;
Begin
    readln(n);
    a:=(13*n) div 24;
    b:=n div 6;
    c:=(7*n) div 24;
    writeln(a,' ',b,' ',c);
End.
 

Переписал на С++
/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .cpp.geshi_code {font-family:monospace;} .cpp.geshi_code .imp {font-weight: bold; color: red;} .cpp.geshi_code .kw1 {color: #0000ff;} .cpp.geshi_code .kw2 {color: #0000ff;} .cpp.geshi_code .kw3 {color: #0000dd;} .cpp.geshi_code .kw4 {color: #0000ff;} .cpp.geshi_code .co1 {color: #666666;} .cpp.geshi_code .co2 {color: #339900;} .cpp.geshi_code .coMULTI {color: #ff0000; font-style: italic;} .cpp.geshi_code .es0 {color: #000099; font-weight: bold;} .cpp.geshi_code .es1 {color: #000099; font-weight: bold;} .cpp.geshi_code .es2 {color: #660099; font-weight: bold;} .cpp.geshi_code .es3 {color: #660099; font-weight: bold;} .cpp.geshi_code .es4 {color: #660099; font-weight: bold;} .cpp.geshi_code .es5 {color: #006699; font-weight: bold;} .cpp.geshi_code .br0 {color: #008000;} .cpp.geshi_code .sy0 {color: #008000;} .cpp.geshi_code .sy1 {color: #000080;} .cpp.geshi_code .sy2 {color: #000040;} .cpp.geshi_code .sy3 {color: #000040;} .cpp.geshi_code .sy4 {color: #008080;} .cpp.geshi_code .st0 {color: #FF0000;} .cpp.geshi_code .nu0 {color: #0000dd;} .cpp.geshi_code .nu6 {color: #208080;} .cpp.geshi_code .nu8 {color: #208080;} .cpp.geshi_code .nu12 {color: #208080;} .cpp.geshi_code .nu16 {color:#800080;} .cpp.geshi_code .nu17 {color:#800080;} .cpp.geshi_code .nu18 {color:#800080;} .cpp.geshi_code .nu19 {color:#800080;} .cpp.geshi_code .me1 {color: #007788;} .cpp.geshi_code .me2 {color: #007788;} .cpp.geshi_code span.xtra { display:block; }

#include "iostream.h"
using namespace std;

int main() {
   int a, b, c, n;
   cin >> n;
   a = (13*n) / 24;
   b = n / 6;
   c = (7*n) / 24;
   cout << a << ' ' << b << ' ' << c;
   return 0;
}
 


Код на Pascal отлично скомпилировался и прошел все тесты. Код на С++ отлично скомпилировался, но дал неправильные ответы на все тесты. Собственно, что я упустил? Что не так в коде на С++?

1 ответов


У меня ваш код на C++ дал верные ответы на N = 120

Может проблема с компилятором?

Ради интереса переписал на чистый Си - все ок


#include <stdio.h>
int main() {
   int a, b, c, n;
   scanf("%d", &n);
   a = (13*n) / 24;
   b = n / 6;
   c = (7*n) / 24;
   printf("%d %d %d", a, b, c);
   return 0;
}
 

UPD
@khanyukov ты не поверишь! Я ради инетереса зарегистрировался там, начал проверять решение.. В общем, ошибка в том, что в конце вывода надо было поставить перевод строки (*facepalm*):

   printf("%d %d %d\n", a, b, c);
   // или
   cout << a << ' ' << b << ' ' << c '\n';
   // или так
   cout << a << ' ' << b << ' ' << c<<endl;
 

UPD++
Мой код на первом месте по производительности (*внезапная удача*) :)

в паскале все переменные longint, в C++ они же int, там наверное переполнение происходит, используй также longint