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

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

Восстановить пароль Регистрация
 
vovavasile
0 / 0 / 0
Регистрация: 04.10.2016
Сообщений: 13
27.10.2016, 21:36     В чем ошибка использования rand() в программе #1
Не могу понять, почему рандомит масив из 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");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2016, 21:36     В чем ошибка использования rand() в программе
Посмотрите здесь:

C++ В чем преимущество использования Pimpl?
C++ Ошибка: [C++ Error] mk.cpp(20): E2268 Call to undefined function 'rand'
Подскажите в чем ошибка в моей программе (рекурсия) C++
Использования C# dll в С++ программе C++
C++ в чем ошибка в программе?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rikimaru2013
C++ Game Dev
 Аватар для rikimaru2013
2135 / 968 / 223
Регистрация: 30.11.2013
Сообщений: 3,239
27.10.2016, 21:40     В чем ошибка использования rand() в программе #2
vovavasile, printf( "%f ", A1[ i ] );
vovavasile
0 / 0 / 0
Регистрация: 04.10.2016
Сообщений: 13
27.10.2016, 21:50  [ТС]     В чем ошибка использования rand() в программе #3
rikimaru2013, Спасибо, но почему выводит только лиш 1 значение, а не все которые удовлетворяют условие, и после комы лиш ноли(52.0, 27.0 )?
castaway
Эксперт С++
4844 / 2983 / 367
Регистрация: 10.11.2010
Сообщений: 11,017
Записей в блоге: 10
Завершенные тесты: 1
27.10.2016, 21:54     В чем ошибка использования rand() в программе #4
Цитата Сообщение от vovavasile Посмотреть сообщение
и после комы лиш ноли(52.0, 27.0 )?
А что там должно быть, если вы заполняете массив целыми числами?
Покажите исправленный код.
vovavasile
0 / 0 / 0
Регистрация: 04.10.2016
Сообщений: 13
27.10.2016, 21:56  [ТС]     В чем ошибка использования rand() в программе #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");
}
castaway
Эксперт С++
4844 / 2983 / 367
Регистрация: 10.11.2010
Сообщений: 11,017
Записей в блоге: 10
Завершенные тесты: 1
27.10.2016, 22:00     В чем ошибка использования rand() в программе #6
Цитата Сообщение от vovavasile Посмотреть сообщение
даже при float массиве
Я прекрасно вижу что у вас массив типа float, но заполняете вы его целыми числами. Что вы ожидаете увидеть после точки? Слово "привет"? Послание с другой планеты?
vovavasile
0 / 0 / 0
Регистрация: 04.10.2016
Сообщений: 13
27.10.2016, 22:07  [ТС]     В чем ошибка использования rand() в программе #7
castaway, Глупый вопрос но где конкретно нужно поменять тип данных чтоб массив задавал float?
TheCalligrapher
С чаем беда...
Эксперт С++
 Аватар для TheCalligrapher
2901 / 1437 / 396
Регистрация: 18.10.2014
Сообщений: 2,650
27.10.2016, 22:09     В чем ошибка использования rand() в программе #8
Цитата Сообщение от vovavasile Посмотреть сообщение
но почему выводит только лиш 1 значение,
Потому что вы в своей программе все найденные значения пихаете в A2[counter] и counter всегда равен 0. Откуда может взяться более одного значения, если counter у вас нигде никогда не меняется?
castaway
Эксперт С++
4844 / 2983 / 367
Регистрация: 10.11.2010
Сообщений: 11,017
Записей в блоге: 10
Завершенные тесты: 1
27.10.2016, 22:10     В чем ошибка использования rand() в программе #9
Цитата Сообщение от vovavasile Посмотреть сообщение
castaway, Глупый вопрос но где конкретно нужно поменять тип данных чтоб массив задавал float?
Согласен. Он настолько глупый что я его даже не понял.
vovavasile
0 / 0 / 0
Регистрация: 04.10.2016
Сообщений: 13
27.10.2016, 22:15  [ТС]     В чем ошибка использования rand() в программе #10
castaway, TheCalligrapher, Спасибо, огромное, всего лиш counter++, но почему же после комы лишь нули?
TheCalligrapher
С чаем беда...
Эксперт С++
 Аватар для TheCalligrapher
2901 / 1437 / 396
Регистрация: 18.10.2014
Сообщений: 2,650
27.10.2016, 22:25     В чем ошибка использования rand() в программе #11
Цитата Сообщение от vovavasile Посмотреть сообщение
но почему же после комы лишь нули?
А что там может быть, если вы генерируете только целые числа???
vovavasile
0 / 0 / 0
Регистрация: 04.10.2016
Сообщений: 13
27.10.2016, 22:27  [ТС]     В чем ошибка использования rand() в программе #12
TheCalligrapher, Так что же поменять что б были числа с плавающей точкой?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2016, 08:12     В чем ошибка использования rand() в программе
Еще ссылки по теме:

SQL в программе нужно отчеты сделать не знаю в чем ошибка C++
C++ Rand() где ошибка?
C++ Особенности использования функции rand() в С++

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

Или воспользуйтесь поиском по форуму:
nmcf
4301 / 3722 / 1255
Регистрация: 14.04.2014
Сообщений: 14,556
28.10.2016, 08:12     В чем ошибка использования rand() в программе #13
Цитата Сообщение от vovavasile Посмотреть сообщение
Так что же поменять что б были числа с плавающей точкой?
Используй uniform_real_distribution, а не древний rand().
Yandex
Объявления
28.10.2016, 08:12     В чем ошибка использования rand() в программе
Ответ Создать тему
Опции темы

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