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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
bootleanC
6 / 6 / 1
Регистрация: 28.04.2009
Сообщений: 106
#1

Генерация массива - C++

31.10.2012, 14:55. Просмотров 1223. Ответов 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
// lab1.cpp: определяет точку входа для консольного приложения.и еще вопрос правильно ли я прописал чтобы рандомно создавались только 5тизначные числы
//
 
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
 
int _tmain(int argc, _TCHAR* argv[])
{
    const int n= 47;
    const int t=71;
    int mas1[2][n];
    int mas2[2][t];
    srand(static_cast<unsigned>(time(NULL)));
    for(int i=0; i<1; ++i)
        for(int j=0; j<n; ++j)
            mas1[i][j] = rand()%90001+10000;
    for(int i=0; i<1; ++i)
        for(int j=0; j<n; ++j)
            printf("Исходный массив %i", mas1[i][j]);
 
 
    return 0;
и плюс еще ругается когда прописываешь в выводе массива вместе printf cout. Пишет что идентификатор cout не определен
C++
1
2
3
for(int i=0; i<1; ++i)
        for(int j=0; j<n; ++j)
            cout<<mas1[i][j];
Добавлено через 5 минут
и еще вопрос правильно ли я прописал то что бы создавались только 5ти значные числы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2012, 14:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Генерация массива (C++):

Генерация массива случайных чисел равномерно распределенных в заданном интервале и упорядочение массива - C++
Помогите создать ПО (на любом языке программирования) позволяющее, генерирующее массив заданной длины со случайными числами, равномерно...

Генерация массива - C++
Помогите, пожалуйста. :cry: Например, есть число 01х01у0. Возьмем для пример такое - 01110110 Вопрос: можно ли задать в программе...

Генерация массива всех перестановок из n элементов. - C++
Нашел по этой теме здесь на форумах такой код: #include &lt;iostream.h&gt; int X; int N; void Swap(int a,int b) { int t=X; ...

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

Генерация массива случайными вещественными числами - C++
Дан одномерный вещественный массив из N элементов (N – нечетное), заданных случайными числами на промежутке [a; b). Значения N, a, b...

Генерация строк из случайных символов массива - C++
Запросить у пользователя количество строк, которые нужно сгенерировать, минимальное и максимальное количество символов в строке и название...

5
ZaMaZaN4iK
Мой лучший друг-отладчик!
164 / 164 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
31.10.2012, 15:22 #2
ругается на cout, потому что не указано пространство имен.пишите std::cout

Можно вопрос - что это за строка такая длинная - srand(static_cast<unsigned>(time(NULL)));
В чем различия со строкой srand(time(0));?
получение 5-значных псевдослучайных чисел правильно написали.
1
bootleanC
6 / 6 / 1
Регистрация: 28.04.2009
Сообщений: 106
31.10.2012, 15:31  [ТС] #3
вот что я нашел по этому
2) иногда в вызове srand пишут srand(static_cast<unsigned>(time(NU LL))); для чего нужен static_cast<unsigned>?

Вообще оно ни на что не влияет. Преобразование типов выполняются автоматически. Просто функция srand объявлена как

void srand(unsigned int n);
Просто до того как было без этого у меня выходило предупреждение как вставил это предупреждение пропало

Добавлено через 3 минуты
проблема с cout пропала. как сделать так чтобы после запуска не закрывалось окно?

Добавлено через 1 минуту
сам решил поставив в конце getch();
0
ZaMaZaN4iK
Мой лучший друг-отладчик!
164 / 164 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
31.10.2012, 15:36 #4
чтобы прога не зкрывалась добавьте в самый конец программы перед return 0 одну из следующих строк:
system("pause"); - хороший вариант
getch(); - тоже неплохой вариант
std::cin.get() - изза некоторых особенностей эту функцию нужно иногда вызывать 2 раза
0
bootleanC
6 / 6 / 1
Регистрация: 28.04.2009
Сообщений: 106
31.10.2012, 16:12  [ТС] #5
спасибо! еще одна проблема, надо проверить чтобы сгенерированные элементы массива был униникальными. и если возникало повторение чтобы функция рандом вызывалось еще раз и снова проверялось условие. и так пока все элементы не будут уникальными

Добавлено через 28 минут
Вот что то получилось правильно ли?
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
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
 
int _tmain(int argc, _TCHAR* argv[])
{
    const int n= 47;
    const int t=71;
    int mas1[2][n];
    int mas2[2][t];
    int c=0;
    srand(static_cast<unsigned>(time(NULL)));
    mas1[0][0] = rand()%90001+10000;
    for(int i=0; i<1; ++i)
        for(int j=1; j<n; ++j)
        {
            mas1[i][j] = rand()%90001+10000;
            for(int k=0; k<i; ++k)
                for(int m=0; m<j; ++m)
                    if(mas1[i][j]==mas1[i-k][j-m])
                    {
                        mas1[i][j] = rand()%90001+10000;
                        c++;
                    }
        }
        if (c>0) std::cout << "try again\n";
        std::cout<<"Ishodnii massiv"<<'\n';
    for(int i=0; i<1; ++i)
        for(int j=0; j<n; ++j)
            std::cout<<i<<","<<j<<"   "<<mas1[i][j]<<'\n';
    _getch();
    return 0;
}
0
bootleanC
6 / 6 / 1
Регистрация: 28.04.2009
Сообщений: 106
01.11.2012, 17:31  [ТС] #6
В общем сделал задание. Если кому надо то вот полный текст задания
18. Сгенерировать 47 пятизначных неповторяющихся чисел (элементов).
Вывести их на экран.
Построить хеш-таблицу, используя:
хеш-функцию – сумма двух первых и двух последних цифр элемента,
метод устранения коллизий – открытая адресация с линейным опробыванием.
и сам код программы
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
45
46
47
48
49
50
51
52
53
54
55
56
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
 
int _tmain(int argc, _TCHAR* argv[])
{
    const int n= 47;
    const int t=71;
    int mas1[n];
    int mas2[t];
    int c;
    for(int i=0;i<t;++i)
        mas2[i]=0;
    srand(static_cast<unsigned>(time(NULL)));
    mas1[0] = rand()%90001+10000;
    for(int i=1; i<n; ++i)
        {
            mas1[i] = rand()%90001+10000;
            for(int j=1; j<=i; ++j)
                topr:if(mas1[i]==mas1[i-j])
                {
                    mas1[i] = rand()%90001+10000;
                    goto topr;
                }
        }
        std::cout<<"Ishodnii massiv"<<'\n';
    for(int i=0; i<n; ++i)
            std::cout<<i<<"   "<<mas1[i]<<'\n';
    int j;
    int k=0;
    for(int i=0; i<n;++i)
    {
        c=0;
        j= ((mas1[i]/1000)+(mas1[i]%100))%t;
        int j0=j;
        top:if(mas2[j]==0)
            {mas2[j]=mas1[i];}
        else
        {
            c++;
            k++;
            j=(j0+c)%t;
            goto top;
            }
    }
    std::cout<<"Hesh tablica"<<'\n';
    for(int i=0; i<t; ++i)
        std::cout<<i<<"   "<<mas2[i]<<'\n';
    std::cout<<"Kol-vo kolizii: "<<k<<'\n';
    double m=(n+k)*1.0/n*1.0;
    std::cout<<"Otnoshenie kolizii: "<<m<<'\n';
    _getch();
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2012, 17:31
Привет! Вот еще темы с ответами:

Генерация массива целых случайных чисел, которые не повторяются - C++
Нужно получить числа от 0 до 15 в рандомном порядке, делаю так: BOOL messageClass::ClsOnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM...

Генерация - C++
#include &quot;iostream&quot; #include &quot;ctime&quot; #include &quot;cstdlib&quot; using namespace std; int main(){ srand(time(NULL)); setlocale(LC_ALL,...

Генерация программы - C++
Есть рабочая программа.Требуется в помощь в компиляции её в Visual Studio 2005 Происходит выход из программы без просмотра...

Генерация ребуса. - C++
Ув. программисты, помогите составить алгоритм генерации ребуса следующего вида и проверки однозначности его решения (хотя бы вручную):


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

Или воспользуйтесь поиском по форуму:
6
Yandex
Объявления
01.11.2012, 17:31
Ответ Создать тему
Опции темы

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