Форум программистов, компьютерный форум CyberForum.ru

Округлить число до 25 знаков после десятичной точки - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Переделать программу (курсовая) http://www.cyberforum.ru/cpp-beginners/thread714822.html
Здравствуйте! Есть готовая написанная прогграмма на тему "Теплица". Мне нужно полностью её просто переделать на тему "Пароходство" тоесть придумать свои классы, название и типы данных переписать, чтобы препод не заметил. Программу с нуля не нужно писать, потому что вот есть готовая, только изменить...
C++ Как вернуть сразу 2 значения массива в функции? Собственно дан у меня например массив "aa", где l-левая граница, а r-правая. При выполнении кода мне надо сразу вернуть эти два стоящих рядом друг с другом значения и вывести их на экран. Как это сделать? Мой код возвращает только str, a str+1 не могу возвратить. Помогите пожалуйста. if (str == str && l + 1 == r) { return str, str +1; } http://www.cyberforum.ru/cpp-beginners/thread714817.html
C++ Элементарные задачи по C++
В универе препод задал написать программы, а я в программировании полный ноль. Пожалуйста, помогите, кто чем может) Задача 1. Есть одномерный массив (вектор) из 10 элементов. Вводится 2 числа i и j - координаты двух элементов вектора. 1) Проверить, что эти координаты действительно указывают на какие-либо элементы вектора, т.е. не выходят за пределы диапазона (если нет, то выдать ошибку)....
Пытаюсь создать dll в VS2008 и что то не так выходит, Нашел пример и все по нему делал C++
myDLL.c #include <windows.h> #include <stdio.h> #include "time.h" #include "string.h" #include <time.h> #include "MyDLL.h"
C++ сумма элементов http://www.cyberforum.ru/cpp-beginners/thread714781.html
Есть список. Это многочлен вида znach*xstep struct list{ int step, znach; list* next;}; //Ссылка на следущий элемент списка struct dyn_list { list* head; // Первый элемент (голова) списка list* tail; // Последний элемент (хвост) списка }; Нужно сделать,чтобы при добавлении в него элементов происходило следующее: если элемент с таким значение step уже есть в списке, то не добавлять...
C++ Определить кольцо с центром в начале координат, которое содержит все точки В одномерном массиве с четным количеством элементов (2N) находятся координа-ты N точек плоскости. Они располагаются в следующем порядке: x1, y1, х2, у2, х3, у3, и т.д. Определить кольцо с центром в начале координат, которое содержит все точки. подробнее

Показать сообщение отдельно
Арсен_
 Аватар для Арсен_
2 / 2 / 0
Регистрация: 25.11.2012
Сообщений: 27
30.11.2012, 22:55     Округлить число до 25 знаков после десятичной точки
Есть простая задача:

Число E
(Время: 1 сек. Память: 16 Мб Сложность: 10%)
Выведите в выходной файл округленное до n знаков после десятичной точки число E. Число Е, округленное до 25 знаков после десятичной точки, равно 2.7182818284590452353602875.

Входные данные

Входной файл INPUT.TXT содержит целое число n (0 ≤ n ≤ 25).

Выходные данные

В выходной файл OUTPUT.TXT выведите ответ на задачу.

Пример:
INPUT.TXT
0
OUTPUT.TXT
3

INPUT.TXT
25
OUTPUT.TXT
2.7182818284590452353602875

INPUT.TXT
13
OUTPUT.TXT
2.7182818284590
вот я ее решаю таким способом, т.к в задании написано округлить

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <fstream>
#include <string>
 
using namespace std;
 
int main()
{
    fstream I("input.txt"), O("output.txt", 2);
    string e = "7182818284590452353602875";
    int N; I >> N;
 
    if(N == 0) 
        O << "3";
    else 
    {
        for(int i = 24; i >= N - 1; i--)
            if(int(e[i + 1]) >= 53)
                e[i] = char(int(e[i]) + 1);
        for(int i = 0; i < N; i++) O << e[i];
    }
}
я проверял у себя на компьютере - данный алгоритм работает как надо! - тоесть округляет число до n знаков

Но на сервере при проверке выдает ошибку - что ответ не верен.

Еще в примере где входые/выходные данные:

входной: 13 выходной: 2.7182818284590

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

число e = 2.7182818284590452353602875

при округлении до 13 символов, получиться 2.7182818284591, а не 2.7182818284590.

В чем проблема?

Я решил не округлять и попробовать на прямую вырезать в вставлять:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <fstream>
#include <string>
 
using namespace std;
 
int main()
{
    fstream I("input.txt"), O("output.txt", 2);
    string e = "7182818284590452353602875";
    int N; I >> N;
 
    if(N == 0) 
        O << "3";
    else 
    {
        O << "2."; O << e.substr(0, N);
    }
}
Таким образом на тесте 4 тоже выдает ошибку, что неверный ответ.

Так какое условие? или я что то не доконца понял?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru