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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Noname2512
4 / 4 / 1
Регистрация: 25.06.2010
Сообщений: 106
#1

самый, самый большой )) - C++

11.08.2011, 12:33. Просмотров 1155. Ответов 18
Метки нет (Все метки)

народ че делать unsigned long long int - оказался недостаточен
есть тип побольше какой-нить? или там как-то обойти как в паскале?
VS 2008
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.08.2011, 12:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос самый, самый большой )) (C++):

Как переставить местами самый маленький и самый большой элементы массива? - C++
1. Переставить местами маленький и самый большой элементы массива

Самый самый самый простой пример рекурсии - C++
приведите самый прост пример рекурсии)))void main(int k) { int n=10; k=n; k++; n=k; if(n!=20)main(n); ...

Найти второй самый большой элемент массива и второй самый маленький элемент массива - C++
Помогите пожалуйста: Найти второй самый большой элемент массива и второй самый маленький элемент массива.

Определить сколько стоит самый дешевый и самый дорогой обед - C++
В столовой предлагается N комплексных обедов, состоящих из Q блюд. Известна стоимость и калорийность каждого блюда. Сколько стоит самый...

Определить, какой сначала был день самый тёплый или самый холодный? - C++
Динамическая память. В массив занесена информация о температуре за неделю. Определить, какой сначала был день самый тёплый или самый...

Найти самый большой элемент Массива - C++
Помогите с заданием не как не могу сообразить С помощью датчика случайных чисел сформировать два массива X и Y размерностью 100 и...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
11.08.2011, 12:38 #2
Длинная арифметика
Больше никак.
И как на паскале это обойти можно? о_О
Там тоже максимальный - int64, но только у него еще 1 разряд под знак. Поэтому unsigned long long больше самого большого паскалевского типа =)
0
-=ЮрА=-
Заблокирован
Автор FAQ
11.08.2011, 12:44 #3
А чем плох старый добрый double???В нём диапазон до Е+304
0
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
11.08.2011, 12:49 #4
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
А чем плох старый добрый double???В нём диапазон до Е+304
Так он не может точно большие числа представлять, погрешности будут. Да и вывести на экран его проблематично..
0
Noname2512
4 / 4 / 1
Регистрация: 25.06.2010
Сообщений: 106
11.08.2011, 12:55  [ТС] #5
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
А чем плох старый добрый double???В нём диапазон до Е+304
точно вроде работает, токо int(double_var) выдает отрицательный результат
хотя double_var положителен
короче как вывести double_var, чтоб другая прога считала его за int ?
0
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
11.08.2011, 12:57 #6
Цитата Сообщение от Noname2512 Посмотреть сообщение
int(double_var) выдает отрицательный результат
Так это число не влезает в int, оно может только в double хранится, и то неточно.
ороче как вывести double_var, чтоб другая прога считала его за int ?
Насколько я знаю - никак.
0
grizlik78
Эксперт С++
1913 / 1445 / 113
Регистрация: 29.05.2011
Сообщений: 3,001
11.08.2011, 12:58 #7
Цитата Сообщение от Noname2512 Посмотреть сообщение
короче как вывести double_var, чтоб другая прога считала его за int ?
Noname2512, а как другая прога его будет считывать? Вот так же и выводить, только наоборот
0
Noname2512
4 / 4 / 1
Регистрация: 25.06.2010
Сообщений: 106
11.08.2011, 13:03  [ТС] #8
ну да неправильно я выразился
как сделать так чтобы double_var был визуально похож на int , чтоб там без точек, без е+...
0
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
11.08.2011, 13:04 #9
Да не подойдет double для ваших целей... =)
Код
diagon@shadeware:~$ cat test.cpp && g++ test.cpp && ./a.out
#include <iostream>
int main(){
	double x;
	std::cin >> x;
	std::cout << std::fixed << x;
}
1234567890123456789012345678901234567890
1234567890123456846996462118072609669120.000000
Погрешность налицо.
Вывести без нулей на конце можно с помощью setprecision(0)
0
Noname2512
4 / 4 / 1
Регистрация: 25.06.2010
Сообщений: 106
11.08.2011, 13:07  [ТС] #10
Цитата Сообщение от diagon Посмотреть сообщение
Вывести без нулей на конце можно с помощью setprecision(0)
я ее использовал е+... остается
0
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
11.08.2011, 13:08 #11
Цитата Сообщение от Noname2512 Посмотреть сообщение
я ее использовал е+... остается
C++
1
std::cout << std::fixed << std::setprecision(0) << num;
1
-=ЮрА=-
Заблокирован
Автор FAQ
11.08.2011, 13:37 #12
Цитата Сообщение от diagon Посмотреть сообщение
double хранится, и то неточно.
- что значит неточно хранитсья в дабл, это тип для хранения чисел с плавающей точкой размерностью до Е+304, что в него записал то и считал, что ты имел в виду???

Добавлено через 1 минуту
Как C вариант
Цитата Сообщение от diagon Посмотреть сообщение
std::cout << std::fixed << std::setprecision(0) << num;
double num;
printf("%.0f",num);
0
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
11.08.2011, 13:38 #13
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- что значит неточно хранитсья в дабл, это тип для хранения чисел с плавающей точкой размерностью до Е+304, что в него записал то и считал, что ты имел в виду???

Добавлено через 1 минуту
Как C вариант
double num;
printf("%.0f",num);
Смотри #9.
Обрати внимание на погрешность.
0
grizlik78
Эксперт С++
1913 / 1445 / 113
Регистрация: 29.05.2011
Сообщений: 3,001
11.08.2011, 13:38 #14
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- что значит неточно хранитсья в дабл, это тип для хранения чисел с плавающей точкой размерностью до Е+304, что в него записал то и считал, что ты имел в виду???
diagon даже пример тебе показал, что он имел ввиду. Вот тебе ещё один:
C
1
2
    double v = 100000000000000012345.0;
    printf("%f\n", v);
Попробуй выполнить.
0
dr.curse
388 / 344 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
11.08.2011, 13:44 #15
Зачем же извращатся над стандартными типами, лучше использовать длинную арефметику, в инете есть масса премеров.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.08.2011, 13:44
Привет! Вот еще темы с ответами:

Самый большой простой делитель числа - C++
#include &lt;iostream&gt; using namespace std; void main() { setlocale(LC_ALL, &quot;Russian&quot;); cout &lt;&lt; &quot;Найдите самый большой...

Найти самый большой положительный элемент заданного массива - C++
надо составить программу который определить самого большого положительного числа из элементов массива

Найти самый большой элемент матрицы по модулю и его индекс - C++
дана квадратная матрица размером . найти самый большой элемент по модулю и его индекс.

Определить, сколько квадратов можно отсечь, если каждый раз отсекается самый большой квадрат - C++
1. От прямоугольника с целыми сторонами А и В отсекаются квадраты. При помощи рекурсивной функции определить, сколько квадратов можно...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
11.08.2011, 13:44
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru