Число E

В данной задаче требуется вывести округленное до n знаков после десятичной точки число E. Считаем, что число Е в точности равно 2.7182818284590452353602875.

Алгоритм решения задачи достаточно прост:

  1. Принимаем на входе количество знаков после запятой N.
  2. Если N == 0, то выводим 3 (E округленное)
  3. Иначе:
    1. Выводим все цифры с 0-вого по N-1
    2. Если N == 25, то последнее число выводим без изменений.
    3. Иначе:
      1. Если N-ная цифра >= 5, то (N-1)-ю цифру увеличиваем на 1 и выводим.
      2. Иначе выводим как есть.

При привидении char to int необходимо учитывать, что в таблице символов 0 - это 48-й символ, 1 - это 49-й ... 9 - это 57-й. Тогда у вас получится следующий код:

#include <iostream>

using namespace std;

int main()
{
    int N, i=0;
    const char * a = "7182818284590452353602875";
    cin >> N;
    if (N > 0) {
        cout << "2.";
        for (;i<N;++i)
            if (i < N-1 || N == 25)
                cout << a[i];
            else {
                (int) a[N] - 48 < 5 ? cout << a[i] : cout << (int) a[i] - 47;
            }
    } else
        cout << 3;

    for (i = 0; i < 10;++i)
        cout << endl << (int)"0123456789"[i];
}