Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
vovavasile
0 / 0 / 0
Регистрация: 04.10.2016
Сообщений: 25
1

В чем ошибка использования rand() в программе

27.10.2016, 21:36. Просмотров 441. Ответов 12
Метки нет (Все метки)

Не могу понять, почему рандомит масив из 75 нулей, а не из диапазона чисел от 16 до 53
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
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<cstdlib>
#include<ctime>
 
int main()
{
    setlocale(LC_CTYPE, "rus");
    system("color F0");
    float A1[75], A2[75];
    int counter = 0, a = rand();
    srand( time( NULL) ) ;
    for (int i = 0; i < 75; i++)
    {
        A1[i] = 16 + rand() % 53;
        if (A1[i] > 25.8 && A1[i] < 34.7)
            A2[counter] = A1[i];
    }
    for (int i = 0; i < 75; i++)
    {
        printf("%d ", A1[i]);
    }
    printf("\n\n");
    for (int i = 0; i <= counter; i++)
        printf("%d ", A2[i]);
    system("pause");
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2016, 21:36
Ответы с готовыми решениями:

Особенности использования функции rand() в С++
Не пойму почему Visual Studio ругается когда я создал класс и описывая его хочу использовать...

в чем ошибка в программе?
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; void main() ...

Подскажите в чем ошибка в моей программе (рекурсия)
Программа копирует строку t в конец строки s: вот код: #include&lt;iostream&gt; using namespace std;...

SQL в программе нужно отчеты сделать не знаю в чем ошибка
готовая программа осталось сделать отчеты на форме 6 уже все прописано и работало приехал домой...

Rand() где ошибка?
Здравствуйте.Нужно взять случайное число от 1 до 4.Но если я &lt;float&gt; изменю на &lt;int&gt; выводится...

12
rikimaru2013
2516 / 1178 / 355
Регистрация: 30.11.2013
Сообщений: 3,792
27.10.2016, 21:40 2
vovavasile, printf( "%f ", A1[ i ] );
0
vovavasile
0 / 0 / 0
Регистрация: 04.10.2016
Сообщений: 25
27.10.2016, 21:50  [ТС] 3
rikimaru2013, Спасибо, но почему выводит только лиш 1 значение, а не все которые удовлетворяют условие, и после комы лиш ноли(52.0, 27.0 )?
0
castaway
Эксперт С++
4946 / 3052 / 455
Регистрация: 10.11.2010
Сообщений: 11,147
Записей в блоге: 10
Завершенные тесты: 1
27.10.2016, 21:54 4
Цитата Сообщение от vovavasile Посмотреть сообщение
и после комы лиш ноли(52.0, 27.0 )?
А что там должно быть, если вы заполняете массив целыми числами?
Покажите исправленный код.
0
27.10.2016, 21:54
vovavasile
0 / 0 / 0
Регистрация: 04.10.2016
Сообщений: 25
27.10.2016, 21:56  [ТС] 5
castaway, даже при float массиве #define _CRT_SECURE_NO_WARNINGS
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
#include<iostream>
#include<cstdlib>
#include<ctime>
 
int main()
{
    setlocale(LC_CTYPE, "rus");
    system("color F0");
    float A1[75], A2[75], a = rand();
    int counter = 0;
    srand ( time( NULL)) ;
    for (int i = 0; i < 75; i++)
    {
        A1[i] = 16 + rand() % 37;
        if (A1[i] > 25.8 && A1[i] < 34.7)
            A2[counter] = A1[i];
    }
    for (int i = 0; i < 75; i++)
    {
        printf("%.1f ", A1[i]);
    }
    printf("\n\n");
    for (int i = 0; i <= counter; i++)
        printf("%.1f ", A2[i]);
    system("pause");
}
0
castaway
Эксперт С++
4946 / 3052 / 455
Регистрация: 10.11.2010
Сообщений: 11,147
Записей в блоге: 10
Завершенные тесты: 1
27.10.2016, 22:00 6
Цитата Сообщение от vovavasile Посмотреть сообщение
даже при float массиве
Я прекрасно вижу что у вас массив типа float, но заполняете вы его целыми числами. Что вы ожидаете увидеть после точки? Слово "привет"? Послание с другой планеты?
0
vovavasile
0 / 0 / 0
Регистрация: 04.10.2016
Сообщений: 25
27.10.2016, 22:07  [ТС] 7
castaway, Глупый вопрос но где конкретно нужно поменять тип данных чтоб массив задавал float?
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
5778 / 2779 / 758
Регистрация: 18.10.2014
Сообщений: 5,001
27.10.2016, 22:09 8
Цитата Сообщение от vovavasile Посмотреть сообщение
но почему выводит только лиш 1 значение,
Потому что вы в своей программе все найденные значения пихаете в A2[counter] и counter всегда равен 0. Откуда может взяться более одного значения, если counter у вас нигде никогда не меняется?
0
castaway
Эксперт С++
4946 / 3052 / 455
Регистрация: 10.11.2010
Сообщений: 11,147
Записей в блоге: 10
Завершенные тесты: 1
27.10.2016, 22:10 9
Цитата Сообщение от vovavasile Посмотреть сообщение
castaway, Глупый вопрос но где конкретно нужно поменять тип данных чтоб массив задавал float?
Согласен. Он настолько глупый что я его даже не понял.
0
vovavasile
0 / 0 / 0
Регистрация: 04.10.2016
Сообщений: 25
27.10.2016, 22:15  [ТС] 10
castaway, TheCalligrapher, Спасибо, огромное, всего лиш counter++, но почему же после комы лишь нули?
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
5778 / 2779 / 758
Регистрация: 18.10.2014
Сообщений: 5,001
27.10.2016, 22:25 11
Цитата Сообщение от vovavasile Посмотреть сообщение
но почему же после комы лишь нули?
А что там может быть, если вы генерируете только целые числа???
0
vovavasile
0 / 0 / 0
Регистрация: 04.10.2016
Сообщений: 25
27.10.2016, 22:27  [ТС] 12
TheCalligrapher, Так что же поменять что б были числа с плавающей точкой?
0
nmcf
6535 / 5758 / 2622
Регистрация: 14.04.2014
Сообщений: 24,498
28.10.2016, 08:12 13
Цитата Сообщение от vovavasile Посмотреть сообщение
Так что же поменять что б были числа с плавающей точкой?
Используй uniform_real_distribution, а не древний rand().
0
28.10.2016, 08:12
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2016, 08:12

Использования C# dll в С++ программе
Здравствуйте, скажите пожалуйста можно ли быстро &quot;прикрутить&quot; C# dll в программе написаной на С++...

Пояснить пример использования rand и побитового и
В примере Петзолда есть строки что меня запутали, он там генерирует цвета и собственно результат...

В чем ошибка в программе ?
Масса молекул кислорода в организме человека составляет 65% от его массы. Составьте программу для...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

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