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

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

Войти
Регистрация
Восстановить пароль
 
vovavasile
0 / 0 / 0
Регистрация: 04.10.2016
Сообщений: 25
#1

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

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

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

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

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

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

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