Мне нужно округлить некоторые номера ввода, используя C++
. Ниже мой код. `Программа округления
#include <iostream>
#include <math.h>
using namespace std;
int main() {
int a;
int b;
int c;
cin >> a;
for (int i =0; i<a; i++) {
cin >> b;
cin >> c;
int result = b/c;
if (result > 0) {
cout << floor(result + 0.5) << " ";
} else {
cout << ceil(result - 0.5) << " ";
}
}
}
Однако, я постоянно получаю слишком низкие ответы.
Пример ввода:
15
6525 1410
14431 510
9163 480
5461 1938
6969 1220
-7065150 -4171886
-9268414 -1461265
17913 584
-32381 -634679
19887 1666
5133363 4488942
5440267 601
4700414 923
4699610 15
4322342 201
Выход: 4 28 19 2 5 1 6 30 -0 11 1 9052 5092 313307 21504
Ожидаемое: 5 28 19 3 6 2 6 31 0 12 1 9052 5093 313307 21504
Что я сделал не так? (И почему я получил отрицательный ноль на одном из них?)
Пожалуйста, не изменяйте вопрос, чтобы его существенно изменить. Это аннулирует ответы, которые вы получили до сих пор. Вместо этого задайте новый вопрос в этих случаях. Я не понимаю, что вы подразумеваете под «Я не мог добавить проблему». –
сайт помешал мне задать новый вопрос. –
Я не знаю, почему вы не можете задавать другие вопросы, но в любом случае переписывание одного, превращающего его в новое, недопустимо. И это даже не эффективно, потому что многие люди даже не читают его, видя, что уже есть 2 ответа. Поэтому, пожалуйста, нажмите на править и отбросьте его обратно в ревизию 2. Что касается вопроса о новом вопросе, возможно, вы были отстранены по какой-то причине (в этом случае вы должны были быть четко проинформированы). Дождитесь окончания срока действия приостановки или свяжитесь с персоналом сайта, если вы считаете, что это техническая проблема. –