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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Leonidus
 Аватар для Leonidus
7 / 7 / 1
Регистрация: 22.03.2010
Сообщений: 74
23.03.2010, 00:12     Случайные рациональные числа в массиве #1
Помогите, пожалуйста, наполнить массив случайными рациональными числами.. Как целыми я, вроде понял, а вот с рациональными проблема..
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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2010, 00:12     Случайные рациональные числа в массиве
Посмотрите здесь:

Случайные числа C++
Случайные числа C++
C++ случайные числа
C++ Случайные числа
C++ Случайные числа
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
UKOL
 Аватар для 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;
Leonidus
 Аватар для 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>
UKOL
 Аватар для UKOL
112 / 64 / 7
Регистрация: 17.11.2009
Сообщений: 258
23.03.2010, 00:27     Случайные рациональные числа в массиве #4
double в скобках для того чтобы получить значение вещественного числа а не целочисленного.
вместо double пиши float раз уж начал писать.
Leonidus
 Аватар для 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
UKOL
 Аватар для 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);
Leonidus
 Аватар для 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];
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2010, 01:01     Случайные рациональные числа в массиве
Еще ссылки по теме:

C++ Случайные числа в массиве
C++ Случайные числа от -8 к 8
Случайные значения в массиве int C++

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

Или воспользуйтесь поиском по форуму:
UKOL
 Аватар для 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;
}
Работает, если надо переделай.
Yandex
Объявления
23.03.2010, 01:01     Случайные рациональные числа в массиве
Ответ Создать тему
Опции темы

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