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

Вывод без e (6e+10,1.35e+8) - C++

Восстановить пароль Регистрация
 
seruy-t
 Аватар для seruy-t
2 / 2 / 0
Регистрация: 21.08.2010
Сообщений: 216
20.03.2012, 17:40     Вывод без e (6e+10,1.35e+8) #1
Всем привет, есть вот такой код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <cstdlib>
#include <iostream>
#include <math.h>
 
float round(float n)
 {
      float t;
      t=n-floor(n);
      if (t>=0.5)
      {
             n= (floor(n)+1);
              }
      else
      {
        n=  floor(n);
 
                           }
      return n;
 }
 
 
 
using namespace std;
 
 
 
 
int main(int argc, char *argv[])
 {
   double a,S,qwe;
 
 
  cin>>a;
 
if(a>=1 && a<=10e9){
          qwe =  pow(3, (0.25));
          double R = ((2*a)/ qwe);
 
         S= ((3*sqrt(3))/2)*(R*R);
 
      
       cout <<round(S)<<endl;
      }
      else cout <<"invalid data"<<endl  ;
 
 
 
    return 0;
 }

Программа считает площадь 6-угольника со стороной http://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{2L}{\sqrt[4]{3}}

Все работает, но есть одно но. В условии сказано, что ответ должен выводиться округленный к ближайшему целому и самые цифры (без e (6e+10,1.35e+8) )
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6159 / 2888 / 282
Регистрация: 04.12.2011
Сообщений: 7,686
Записей в блоге: 3
20.03.2012, 17:44     Вывод без e (6e+10,1.35e+8) #2
Цитата Сообщение от seruy-t Посмотреть сообщение
cout <<round(S)<<endl;
А если так:
cout <<(int)round(S)<<endl;
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
20.03.2012, 17:45     Вывод без e (6e+10,1.35e+8) #3
fixed
setprecision
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
20.03.2012, 18:30     Вывод без e (6e+10,1.35e+8) #4
C++
1
cout << static_cast< int > (S + 0.5) <<endl;
seruy-t
 Аватар для seruy-t
2 / 2 / 0
Регистрация: 21.08.2010
Сообщений: 216
20.03.2012, 20:24  [ТС]     Вывод без e (6e+10,1.35e+8) #5
easybudda, Спасибо, но теперь выводиться число с нулями после запятой, как их откинуть ?

diagon, диапазона int мало, максимальное число вводимое = 1 000 000, потом с ним выполняются разные операции, в том числе и воспроизведение в квадрат

Добавлено через 16 минут
Откидаю нули так
C++
1
 cout << fixed <<setprecision(0)<<round(S)<<endl;
как еще можно ?
R136a1
 Аватар для R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
20.03.2012, 20:34     Вывод без e (6e+10,1.35e+8) #6
Цитата Сообщение от seruy-t Посмотреть сообщение
теперь выводиться число с нулями после запятой, как их откинуть ?
setprecision floor
seruy-t
 Аватар для seruy-t
2 / 2 / 0
Регистрация: 21.08.2010
Сообщений: 216
20.03.2012, 21:06  [ТС]     Вывод без e (6e+10,1.35e+8) #7
Откидаю нули так
C++
1
cout << fixed <<setprecision(0)<<round(S)<<endl;

как еще можно ?
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
20.03.2012, 22:58     Вывод без e (6e+10,1.35e+8) #8
Цитата Сообщение от seruy-t Посмотреть сообщение
Откидаю нули так
"Откидываю" по-русски. А чем такой подход не устраивает?
seruy-t
 Аватар для seruy-t
2 / 2 / 0
Регистрация: 21.08.2010
Сообщений: 216
21.03.2012, 16:59  [ТС]     Вывод без e (6e+10,1.35e+8) #9
easybudda, извиняюсь, русский - не мой родной язык. Просто интересно есть ли еще какие то варианты
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2012, 17:04     Вывод без e (6e+10,1.35e+8)
Еще ссылки по теме:

C++ Вывод числа в столбик с первой цифры, без массива, без строк
C++ Вывод строки без пробелов
C++ Вывод функции тангенс без асимптоты

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
21.03.2012, 17:04     Вывод без e (6e+10,1.35e+8) #10
Цитата Сообщение от seruy-t Посмотреть сообщение
cout << fixed <<setprecision(0)<<round(S)<<endl;
Можно так, надежнее будет
C++
1
cout << fixed << setprecision(0) << S<< endl;
Yandex
Объявления
21.03.2012, 17:04     Вывод без e (6e+10,1.35e+8)
Ответ Создать тему
Опции темы

Текущее время: 21:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru