Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/145: Рейтинг темы: голосов - 145, средняя оценка - 4.58
0 / 0 / 0
Регистрация: 22.08.2010
Сообщений: 3
1

Заполнение массива вещественными числами с двумя знаками после запятой

22.08.2010, 23:48. Показов 30341. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Я только начала работать в С++ и не знаю как заполнить одномерный массив из 10 элементов вещественными числами в диапазоне от 1 до 10 с двумя знаками после запятой.
Проблема именно в количестве знаков после запятой. Как это сделать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.08.2010, 23:48
Ответы с готовыми решениями:

Дробные числа с двумя знаками после запятой
Всем привет! У меня возникла такая проблема. Для начала опишу переменные: client.Tariff тип double,...

Вывод числа с двумя знаками после запятой
как это сделать в форме? Добавлено через 7 часов 18 минут че никто не знает?

Вывести число в label с двумя знаками после запятой
y1_label->Text = Convert::ToString(res); я вывожу так. Но как сделать, чтоб выводило только два...

Вывод вещественного числа с двумя знаками после запятой
a:=round(a*100)/100; writeln(a);окрулили a до сотых. Как сделать так, чтобы если к примеру a=5,2...

14
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
22.08.2010, 23:58 2
Ну вообще особого типа для чисел с двумя знаками после запятой нет. Используйте float.
0
Автор FAQ
Автор FAQ
1802 / 614 / 37
Регистрация: 22.12.2009
Сообщений: 1,544
23.08.2010, 00:01 3
Цитата Сообщение от silent_1991 Посмотреть сообщение
Ну вообще особого типа для чисел с двумя знаками после запятой нет. Используйте float.
Еще можно использовать double
Это так. Или же создавайте свой тип. Если нужно именно 2 знака после запятой, то нужно приводить к такому виду самостоятельно.
0
0 / 0 / 0
Регистрация: 22.08.2010
Сообщений: 3
23.08.2010, 00:02  [ТС] 4
Проблема моей программе в том, что не все числа с двумя знаками:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <conio.h> 
#include<stdlib.h>
#include<time.h>// 
using namespace std;
void main() {
const int size=10;
    float mas[size];
    int i;
    srand(time(NULL));
    for(i=0;i<size;i++)
 
    {mas[i]=(rand()%901+100)/100;
 
cout<<mas[i];
       
    }
        }
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
23.08.2010, 00:05 5
Rockedit,
Есть, но он всё-таки для большей точности десятичной части, а нам-то необходимо всего 2 знака, так что float экономичнее.
0
Эксперт С++
261 / 191 / 10
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
23.08.2010, 00:07 6
Варианта два:
1. Держите с максимальной точностью, при выводе обрезая до двух знаков:
C
1
printf( "%.2f", f )
или
C++
1
std::cout << std::fixed << std::setprecision(2) << std::endl;
Или как здесь: http://www.daniweb.com/forums/thread24590.html
2. Умножайте на 100, отрезайте остаток, потом назад.
0
alex_x_x
23.08.2010, 00:08
  #7

Не по теме:

silent_1991, double эффективней обрабатывается, поэтому использование float сомнительно в целом

0
0 / 0 / 0
Регистрация: 22.08.2010
Сообщений: 3
23.08.2010, 00:12  [ТС] 8
Вот что я сделала, но не каждий раз генератор генерует то что надо!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <conio.h>
#include<stdlib.h>
#include<time.h>//
using namespace std;
void main() {
const int size=10;
float k=1;
    float mas[size];
    int i;
    srand(time(NULL));
    for(i=0;i<size;i++)
{k=rand()%901+100;
    mas[i]=k/100;
cout<<mas[i]<<"\n";
       
    }}
 Комментарий модератора 
Используйте соответствующие теги форматирования кода.
0
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
23.08.2010, 00:13 9
машаК, а то, что вам советуют для кого писано? Andrew_Lvov всё, что нужно накатал, прочитайте уж его пост.
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
23.08.2010, 00:16 10
alex_x_x,
Я, если честно, всегда использую double)))
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
23.08.2010, 00:16 11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
 
int main(){
    const int SIZE = 10;
    double arr[SIZE];
    
    srand(time(NULL));
    for ( int i = 0; i < SIZE; ++i )
        arr[i] = static_cast<double>(rand() % 901 + 100) / 100.0;
    
    for ( int i = 0; i < SIZE; ++i )
        std::cout << std::fixed << std::setprecision(2) << arr[i] << ' ';
    std::cout << std::endl;
    
    return 0;
}
1
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
23.08.2010, 00:17 12
C
1
(rand()%1000+100)/100.
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
23.08.2010, 00:24 13
alex_x_x, так при rand() = 901 передоз получится
0
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
23.08.2010, 00:35 14
easybudda, если считать 10.99 правильным числом - то не случится
Цитата Сообщение от машаК Посмотреть сообщение
от 1 до 10 с двумя знаками после запятой
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
23.08.2010, 00:37 15
alex_x_x,
Не, не канает, до 10 значит не больше 10
0
23.08.2010, 00:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.08.2010, 00:37
Помогаю со студенческими работами здесь

Ограничить ввод чисел с двумя знаками после запятой
Доброго времени суток! Помогите написать обработчик для ввода в TextBox чисел, ограниченных 2...

Рандом вещественных чисел с двумя знаками после запятой
Помогите сделать рандом вещественных чисел с двумя знаками после запятой.

Проверить на соответствие string формату цены — число с двумя знаками после запятой
Помогите проверить на соответствие string формату цены - число с двумя знаками после запятой ...

Требуется установить формат ячеек в Экселе числовой с двумя знаками после запятой
Извините за чайницкий вопрос, требуется установить формат ячеек в Экселе числовой с двумя знаками...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru