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

Заполнение массива вещественными элементами

20.09.2010, 15:11. Показов 5263. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток всем форумчанам.
Столкнулся с вот такой вот задачей :в одномерном массиве,состоящем из n вещественных элементов,вычислить количество элементов массива,больших Х и вычислить время работы алгоритма.
Вроде бы с задачей справился,но когда справился понял,что у меня заполняется массив не вещественным,а целым типом,поиски в гугле успехом не увенчались,помогите ввести вещественный тип элементов массива при случайном заполнении вместо целочисленного.Заранее благодарен.
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
50
#include <iostream>
#include <conio.h>
#include <time.h>
#include <stdio.h>
using namespace std;
int main()
{
 srand(time(NULL));
 //Создание одномерного массива с размерностью заданной пользователем
 int n,X;
 cout<<"Vvedite razmer odnomernogo massiva - ";
 cin>>n;
 int *p=new int[n];
 //Заполним массив случайными значениями
 for(int i=0; i<n; i++)
 {
  p[i]=rand()%100;
  cout<<p[i]<<" ";
 } 
 cout << endl;
 //Вводим значение Х
 cout<<"Vvedite zna4enie 'X': ";
 cin>>X;
  clock_t time;
  time = clock();
 //Ищем и выводим значения,большие Х
    int count=0;
    cout<<"Naideno zna4eniy: "<<endl;
    for(int i=0;i<n;i++)
    {
        if(p[i]>X)
        {
            cout<<p[i]<<endl;
            count++;
        }
    }
 //Выводим количество элементов,больших Х
    cout<<"Koli4estvo elementov: "<<count<<endl;
 time = clock() - time;
 printf("%f", (double)time/CLOCKS_PER_SEC); //время выполнения "каких-то действий"
 cout << endl;
 for (int i=0; i<n; i++)
 {
    system("PAUSE");
    return EXIT_SUCCESS;
}
 //Не забывать освобождать память после того как массив уже не нужен
 delete [] p;
 cout<<" ";
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.09.2010, 15:11
Ответы с готовыми решениями:

Заполнение массива вещественными числами с двумя знаками после запятой
Здравствуйте! Я только начала работать в С++ и не знаю как заполнить одномерный массив из 10...

Заполнение массива элементами по условию
Нужен массив p который состоит из суммы элементов второго массива a за таким условием p = a; p...

Заполнение множеств элементами массива.
Нужно заполнить множества элемнетами массива случайным образом. #include&lt;iostream&gt;...

Заполнение массива элементами арифметической прогрессии
Помогите написать код для заполнения массива элементами арифметической прогрессии. Первый элемент...

19
98 / 94 / 16
Регистрация: 16.05.2010
Сообщений: 310
20.09.2010, 15:59 2
Случайные числа
0
1 / 1 / 0
Регистрация: 20.09.2010
Сообщений: 36
20.09.2010, 16:15  [ТС] 3
Хм.Прошел по ссылке.Почитал.Но не понял,как это можно применить к моему циклу
C++
1
2
3
4
5
 for(int i=0; i<n; i++)
 {
  p[i]=rand()%100;
  cout<<p[i]<<" ";
 }
P.S.dobule)rand()%100 --- ругается.
srand(time(NULL));
cout << rand() % 100; --- тоже не работает.Если srand(time(NULL)); перед фор-ом,то ничего не меняется,если после - компилятор ругается,если в цикле - одно и то же значение будет записываться и выводиться.
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
20.09.2010, 16:32 4
stdlib.h и time.h подключили?
0
1 / 1 / 0
Регистрация: 20.09.2010
Сообщений: 36
20.09.2010, 17:11  [ТС] 5
time.h был подключен,stdlib.h подключил,но всё то же,что было в P.S. указано осталось без изменений
обновлено:
p[i]=(double)(rand()%10000)/10; --- компилируется,но значения всё равно только целые.
Ткните носом,где искать ошибку,или кусочек кода покажите,пожалуйста,как это в принципе можно реализовать,если можно...

Добавлено через 16 минут
Ага.
p[i]=(double)(rand()%10000)/10;
18 C:\Dev-Cpp\LABA1cpp.cpp [Warning] converting to `int' from `double' --- вот почему значения всё равно только целые.Вопрос: где и что нужно задать,чтоб не было конвертации в int из double?
0
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
20.09.2010, 17:20 6
C++
1
double *p=new double[n];
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
20.09.2010, 17:45 7
Цитата Сообщение от KuKu Посмотреть сообщение
C++
1
double *p=new double[n];
мало того,
C++
1
2
for ( int i = 0; i < n; ++i )
  p[i] = static_cast<double>rand() / rand();
0
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
20.09.2010, 17:53 8
а что это значит ?)
1
1 / 1 / 0
Регистрация: 20.09.2010
Сообщений: 36
20.09.2010, 18:06  [ТС] 9
C++
1
2
3
4
5
6
double *p=new double[n]; 
 for(int i=0; i<n; i++)
 {
  p[i]=(double)(rand()%10000)/100;
  cout<<p[i]<<" ";
 }
--- подошло,работает,благодарю!

C++
1
2
for ( int i = 0; i < n; ++i )
  p[i] = static_cast<double>rand() / rand();
--- а вот это попытался применить - компилятор начал ругаться:
C:\Dev-Cpp\LABA1cpp.cpp In function `int main()':
17 C:\Dev-Cpp\LABA1cpp.cpp expected `(' before "rand"
17 C:\Dev-Cpp\LABA1cpp.cpp expected `)' before ';' token
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
20.09.2010, 18:33 10
Цитата Сообщение от Demonhunterus Посмотреть сообщение
а вот это попытался применить - компилятор начал ругаться
ну да, поспешил малость... вот так должно работать:
C++
1
p[i] = static_cast<double>(rand()) / rand();
1
1 / 1 / 0
Регистрация: 20.09.2010
Сообщений: 36
20.09.2010, 18:52  [ТС] 11
easybudda,
KuKu,
Огромное спасибо вам,ребята.Помогли.Во всем разобрался,всё работает
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
20.09.2010, 18:57 12
Цитата Сообщение от KuKu Посмотреть сообщение
а что это значит ?
static_cast<type_name>(another_type_value) что значит? приведение к типу в С++ - примерно то же, что в С (type_name)another_type_value
1
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
20.09.2010, 19:01 13
(type_name)another_type_value
а такая конструкция разве в с++ не работает или в ней что то есть нехорошее ?
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
20.09.2010, 19:11 14
Цитата Сообщение от KuKu Посмотреть сообщение
а такая конструкция разве в с++ не работает или в ней что то есть нехорошее ?
Работает, но в разных книжках (на вскидку только Дейтлов помню - в первый раз у них увидел) настойчиво рекомендуют в С++ вот таким макаром типы приводить. Читал и расплывчатые заумные объяснения, чем оно лучше, но нифига не понял, решил как факт принять А было вроде про это уже на форуме - поищите...
1
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
21.09.2010, 09:33 15
Цитата Сообщение от easybudda Посмотреть сообщение
Читал и расплывчатые заумные объяснения, чем оно лучше, но нифига не понял
0
1 / 1 / 0
Регистрация: 20.09.2010
Сообщений: 36
25.09.2010, 17:31  [ТС] 16
C++
1
 p[i] = static_cast<double>(rand()) / rand();
--- как это изменить,чтобы массив заполнялся не только положительными,но и отрицательными числами? Помогите
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
25.09.2010, 17:36 17
Цитата Сообщение от Demonhunterus Посмотреть сообщение
как это изменить,чтобы массив заполнялся не только положительными,но и отрицательными числами?
C++
1
p[i] = static_cast<double>(rand() - rand()) / rand();
1
1 / 1 / 0
Регистрация: 20.09.2010
Сообщений: 36
25.09.2010, 17:48  [ТС] 18
Хех ))) Так просто...Спасибо!
0
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
25.09.2010, 18:08 19
Цитата Сообщение от easybudda Посмотреть сообщение
Работает, но в разных книжках (на вскидку только Дейтлов помню - в первый раз у них увидел) настойчиво рекомендуют в С++ вот таким макаром типы приводить
новые способы приведения разграничивают безопасные, полиморфные и опасные приведения, в этом пожалуй есть смысл
0
Эксперт С++
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
25.09.2010, 19:14 20
Цитата Сообщение от KuKu Посмотреть сообщение
а такая конструкция разве в с++ не работает или в ней что то есть нехорошее ?
Работает, она фактически сначала пытается сделать приведение с помощью static_cast'а, если не получается, то используется самый небозопасный каст - reinterpret_cast. Подробнее здесь.
0
25.09.2010, 19:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.09.2010, 19:14
Помогаю со студенческими работами здесь

Заполнение одного массива элементами другого
Доброго времени суток, форумчане. Я и программирование - токо недавно вместе, месяц, кароч...

Как правильно реализовать заполнение двумерного массива элементами
Здравствуйте! Имеется проблема такого рода: Имеется 5-6 классов, с базовым классом и 5-...

Заполнение двух динамических массивов случайными вещественными числами
У массивов получаются одинаковые значения, почему? Что посоветуете? #include &lt;iostream&gt; #include...

Генерация массива случайными вещественными числами
Дан одномерный вещественный массив из N элементов (N – нечетное), заданных случайными числами на...


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

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