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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Leonidus
7 / 7 / 1
Регистрация: 22.03.2010
Сообщений: 74
#1

Случайные рациональные числа в массиве - C++

23.03.2010, 00:12. Просмотров 1144. Ответов 7
Метки нет (Все метки)

Помогите, пожалуйста, наполнить массив случайными рациональными числами.. Как целыми я, вроде понял, а вот с рациональными проблема..
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
// Lab3.cpp : Defines the entry point for the console application.
//
 
 
#include "stdafx.h"
#include <iostream>
#include <clocale>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
 
using namespace std;
float mas[];
float r;
int n;
 
int input();
 
int main()
{       
    setlocale(LC_CTYPE,"Russian");
    cout<<"                               Добро пожаловать!\n";
    input();
}
 
int input()
{
    srand ( time(NULL) );
    cout<<"Введи размерность массива";
    cin>>n;
    for (int i=0;i<=n;i++)
    {
        mas[i]=rand() % 10 + 1;
 
        cout<<mas[i];
    }
    return 0;
}
Добавлено через 8 минут
Кстати, и как вывести потом.. Просто в паскале это было с плавающей точкой.. А вот как здесь..
C++
1
2
3
4
5
6
int output()
{
    for (int i=0;i<=n;i++)
        cout<<"Массив:\n", mas[i];
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2010, 00:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Случайные рациональные числа в массиве (C++):

Случайные числа в массиве - C++
Как с помощью генератора случайных чисел заполнить двумерный массив NxN числами в интервале 10-99 при этом еще повернув массив на 90° по...

Программа обрабатывающая рациональные дроби хранящиеся в двумерном массиве - C++
Напишите программу, обрабатывающую рациональные дроби, хранящиеся в двумерном массиве (матрице). Каждая рациональная дробь определяется...

Нужно чтобы случайные числа вставали в конец массива,а не удаляли числа - C++
#include &lt;iostream&gt; using namespace std; void main() { setlocale(LC_ALL, &quot;Russian&quot;); int n; // кол-во элементов массива ...

Случайные значения в массиве int - C++
Здравствуйте, возникла такая проблема - присваиваются случайные значения массиву. Все значения с помощью цикла изначально обнулял - ноль...

Случайные числа - C++
Написать функцию, которая подсчитует сколько раз заданое число встречается в последовательности N случайных чисел.

случайные числа - C++
подскажите как сформировать двумерный массив случайных чисел в заданном диапозоне которые не повторяются

7
UKOL
112 / 64 / 7
Регистрация: 17.11.2009
Сообщений: 258
23.03.2010, 00:19 #2
можно такую фишку замутить

mas[i]=(double)(rand()+999)/(rand()+1);

или красиво
int a=rand()%999;
int b=rand()%999+1;
double c=a/b;
0
Leonidus
7 / 7 / 1
Регистрация: 22.03.2010
Сообщений: 74
23.03.2010, 00:26  [ТС] #3
Что значит дабл в скобках..? Если не сложно, расскажи в кратце, как это работает..)

Добавлено через 39 секунд
И как вывести с приближением значения..

Добавлено через 1 минуту
1>c:\users\leonidus\documents\visual studio 2010\projects\lab3\lab3\lab3.cpp(31): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
1>ManifestResourceCompile:
1> All outputs are up-to-date.
1>Lab3.obj : error LNK2001: unresolved external symbol "float * mas" (?mas@@3PAMA)
1>C:\Users\Leonidus\documents\visual studio 2010\Projects\Lab3\Debug\Lab3.exe : fatal error LNK1120: 1 unresolved externals
1>
0
UKOL
112 / 64 / 7
Регистрация: 17.11.2009
Сообщений: 258
23.03.2010, 00:27 #4
double в скобках для того чтобы получить значение вещественного числа а не целочисленного.
вместо double пиши float раз уж начал писать.
0
Leonidus
7 / 7 / 1
Регистрация: 22.03.2010
Сообщений: 74
23.03.2010, 00:31  [ТС] #5
Тут, как я понял, дабл - тип данных, и конвертация из него во флоат может повлечь потерю части информации..
А дальше не понял..

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
// Lab3.cpp : Defines the entry point for the console application.
//
 
 
#include "stdafx.h"
#include <iostream>
#include <clocale>
#include <conio.h>
#include <stdlib.h>
 
using namespace std;
float mas[];
float r;
int n;
 
int input();
int output();
 
int main()
{       
    setlocale(LC_CTYPE,"Russian");
    cout<<"                               Добро пожаловать!\n";
    input();
    output();
}
 
int input()
{
    cout<<"Введи размерность массива";
    cin>>n;
    for (int i=0;i<=n;i++)
    {
        mas[i]=(double)(rand()+999)/(rand()+1);
 
    }
    return n;
}
 
int output()
{
    for (int i=0;i<=n;i++)
        cout<<"Массив:\n", mas[i];
    return 0;
}
Добавлено через 2 минуты
А если красиво, то как - то так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int input()
{
    cout<<"Введи размерность массива";
    cin>>n;
        int a=rand()%999;
        int b=rand()%999+1;
        double c=(double)a/b;
    for (int i=0;i<=n;i++)
    {
        mas[i]=c;
 
    }
    return n;
}
Я правильно понял..? Но оно всё равно не работает..

1>c:\users\leonidus\documents\visual studio 2010\projects\lab3\lab3\lab3.cpp(36): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
1>ManifestResourceCompile:
1> All outputs are up-to-date.
1>Lab3.obj : error LNK2001: unresolved external symbol "float * mas" (?mas@@3PAMA)
1>C:\Users\Leonidus\documents\visual studio 2010\Projects\Lab3\Debug\Lab3.exe : fatal error LNK1120: 1 unresolved externals
0
UKOL
112 / 64 / 7
Регистрация: 17.11.2009
Сообщений: 258
23.03.2010, 00:31 #6
функцию output сделай так
C++
1
2
3
4
5
void output(int n)
{
        for (int i=0;i<=n;i++)
                cout<<"Массив:\n", mas[i];
}
и в 17 строке тоже поменяй на void output(int);
1
Leonidus
7 / 7 / 1
Регистрация: 22.03.2010
Сообщений: 74
23.03.2010, 00:41  [ТС] #7
Да, с void - это клёво)
Но, всё - таки..
1>c:\users\leonidus\documents\visual studio 2010\projects\lab3\lab3\lab3.cpp(36): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
1>ManifestResourceCompile:
1> All outputs are up-to-date.
1>Lab3.obj : error LNK2001: unresolved external symbol "float * mas" (?mas@@3PAMA)
1>C:\Users\Leonidus\documents\visual studio 2010\Projects\Lab3\Debug\Lab3.exe : fatal error LNK1120: 1 unresolved externals
1>
1>Build FAILED

Добавлено через 3 минуты
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
#include <clocale>
#include <conio.h>
#include <stdlib.h>
 
using namespace std;
float mas[];
float r;
int n;
 
int input();
void output(int);
 
int main()
{       
    setlocale(LC_CTYPE,"Russian");
    cout<<"                               Добро пожаловать!\n";
    input();
    void output(int);
}
 
int input()
{
    cout<<"Введи размерность массива";
    cin>>n;
        int a=rand()%999;
        int b=rand()%999+1;
        double c=(double)a/b;
    for (int i=0;i<=n;i++)
    {
        mas[i]=c;
 
    }
    return n;
}
 
void output()
{
        for (int i=0;i<=n;i++)
                cout<<"Массив:\n", mas[i];
}
0
UKOL
112 / 64 / 7
Регистрация: 17.11.2009
Сообщений: 258
23.03.2010, 01:01 #8
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
#include <iostream>
#include <time.h>
 
using namespace std;
 
int main()
{          
    srand(time(NULL));
    double a;
    double b;
    
    int n;
    double mas[100]={0};
 
        cout<<"                               Wellcome!\n";
        cout << "Ener size: ";
        cin >> n; 
        for (int i=0;i<=n;i++)
        {
                a=rand()%1000;
                b=rand()%1000+1;
                mas[i]=(double)a/b;
 
        }
        for (int i=0;i<n;i++)
                cout<< "Massiv: " << mas[i] << endl;
        return 0;
}
Работает, если надо переделай.
0
23.03.2010, 01:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2010, 01:01
Привет! Вот еще темы с ответами:

Случайные числа - C++
Привет, мне надо наполнить массив случайными числами но толька чтоб они не повторялись, подскажыте как ето сделать.

случайные числа - C++
как заполнить массив случайными числами например от -50 до 50 void generate(int mas,int n){ for(int i=0;i&lt;n;i++) mas=(rand()%50)-50; ...

Случайные числа - C++
void rndChain(){ system(&quot;cls&quot;); SetConsoleTitleA(&quot;dovjina zrost vibirki&quot;); ...

Случайные числа - C++
Подскажите функцию(или класс а вней функцию) для генерирования случайных чисел аналог Random.Next() C#


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

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

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