Различный вывод в кодовых блоках и визуальной студии - PullRequest
0 голосов
/ 24 апреля 2019

Ниже программа дает различный вывод в кодовых блоках и визуальной студии для одного и того же ввода

Ввод: 5 4 1 2 1

CodeBlocks

вывод: 0,00000000

#include<bits/stdc++.h>
using namespace std;

int main()
{
    double l,d,v,g,r;
    cin>>l>>d>>v>>g>>r;
    if(g*v>d) printf("%.8lf\n",(double)l/v);
    else
    {
        printf("%.8lf\n",ceil(d/v/(g+r)) * (g+r)+(l-d)/v);
    }
    return 0;
}

Визуальная студия

выход: 7.00000000

#include<iostream>
#include<stdio.h>
#include<math.h>
using namespace std;

int main()
{
    double l, d, v, g, r;
    cin >> l >> d >> v >> g >> r;
    if (g*v > d) printf("%.8lf\n", (double)l / v);
    else
    {
        printf("%.8lf\n", ceil(d / v / (g + r)) * (g + r) + (l - d) / v);
    }
    return 0;
}

Это из-за заголовков или чего-то еще

1 Ответ

1 голос
/ 24 апреля 2019

Прежде всего, не используйте

#include <bits/stdc++.h>

См. Почему бы мне не #include ? для подробностей.

Во-вторых, вывод из Visual Studio мне кажется правильным.

Обновите код для CodeBlocks, чтобы он использовался так же, как тот, который вы использовали в Visual Studio, и повторите попытку. Возможно, использование #include <bits/stdc++.h> имеет некоторые нежелательные побочные эффекты.

Если это не решит вашу проблему, добавьте некоторые диагностические данные, чтобы выяснить, где что-то может пойти не так. Э.Г.

int main()
{
   double l, d, v, g, r;
   cin >> l >> d >> v >> g >> r;

   printf("l: %f\n", l);
   printf("d: %f\n", d);
   printf("v: %f\n", v);
   printf("g: %f\n", g);
   printf("r: %f\n", r);
   printf("\n");

   printf("(d / v / (g + r)): %f\n", (d / v / (g + r)));
   printf("ceil(d / v / (g + r)): %f\n", ceil(d / v / (g + r)));
   printf("ceil(d / v / (g + r)) * (g + r): %f\n", ceil(d / v / (g + r)) * (g + r));
   printf("(l - d) / v: %f\n", (l - d) / v);
   printf("ceil(d / v / (g + r)) * (g + r) + (l - d) / v): %f\n", ceil(d / v / (g + r)) * (g + r) + (l - d) / v);

   return 0;
}

Полезная ссылка: Как отлаживать небольшие программы .

...