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

массивы(заполнение и запись в файл) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Нужно написать прогу(срочно) http://www.cyberforum.ru/cpp-beginners/thread186475.html
Записать в файл последовательного доступа N натуральных чисел: a1, a2, …, an (числа, получить с помощью датчика случайных чисел). Сформировать но-вый файл последовательного доступа, элементами которого являются числа: a1, a1*a2, a1*a2*a3, …, a1*a2*a3*…*an.
C++ Функция реверса строки На собеседовании в одну компанию меня попросили на бумажке написать функцию реверса строки. Буквально парой дней раньше я услышал о том что на собеседованиях частенько просят решить именно эту задачу. Ее простота насторожила меня и заставила искать наиболее красивое/оптимизированное/необычное решение. И я его таки нашел и малость перестарался. Как я узнал позже интервьюер решил что я дал... http://www.cyberforum.ru/cpp-beginners/thread186473.html
C++ Очистка памяти
Вот сделал лабу и все работает отлично, но осталось последнее new выделяет память мне нужно добавить функцию которая будет вызыватся в конце и чистить память но как это сделать хз пробовал не получилось(( #include <iostream> #include <cstdlib> #include <fstream> #include<clocale> using namespace std;
C++ Можно ли на С++ как-то свернуть стек для выхода из рекурсии, а не последовательно выходить из нее?
Вот такой пример кода: QuickSort::QuickSort(void) { deeps = 0; needsShuffl = false; } QuickSort::~QuickSort(void) {
C++ Выручайте друзья http://www.cyberforum.ru/cpp-beginners/thread186458.html
Вопрос в следующем. У меня есть EXEшная фаил который работает под Windows Mobile, в работе этой программы мне надо отключить функцию "поверх всех окон" ( т.е. не могу ее свернуть). В одном из режимов работы при попытке сворачивания программа сварачивается на секунду и снова всплывает. Помогите кто может поправить ее.
C++ Перевод чисел и разных систем Доброго всем времени суток задали задачку мне,а как решить не знаю,мне нужно сделать программу перевода числе из двуичной системы в десятиричную.Самая больая проблема,что мы только начали курс по С++ и всё ,что я находил похожее есть решением моей задачи,но так как этого ещё не изучали мне не зачтут,подскажите как сделать её на очень низком уровне. Я тут думал мне обьязательно для решения этой... подробнее

Показать сообщение отдельно
silent_1991
Эксперт C++
4945 / 3021 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
05.11.2010, 13:24     массивы(заполнение и запись в файл)
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#include <iostream>
#include <fstream>
#include <iomanip>
#include <ctime>
 
int **myAlloc(int n, int m);
void myFree(int **matr, int n);
int max(int a, int b);
int min(int a, int b);
void border(int **matr, int I, int J, int N, int n, int m);
void fill(int **matr, int I, int J, int n, int m);
 
int main()
{
    int n, m;
 
    std::cout << "Enter n: ";
    std::cin >> n;
    std::cout << "Enter m: ";
    std::cin >> m;
 
    int **pond = myAlloc(n, m);
    
    srand(static_cast<unsigned>(time(0)));
 
    int I = n * rand() / RAND_MAX;
    int J = m * rand() / RAND_MAX;
 
    fill(pond, I, J, n, m);
 
    std::ofstream fout("pond.txt");
 
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
            fout << std::setw(2) << pond[i][j] << " ";
 
        fout << std::endl;
    }
 
    myFree(pond, n);
 
    return 0;
}
 
int **myAlloc(int n, int m)
{
    int **matr = new int *[n];
 
    for (int i = 0; i < n; i++)
        matr[i] = new int [m];
 
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
            matr[i][j] = 0;
 
    return matr;
}
 
void myFree(int **matr, int n)
{
    for (int i = 0; i < n; i++)
        delete [] matr[i];
 
    delete [] matr;
}
 
int max(int a, int b)
{
    return a > b ? a : b;
}
 
int min(int a, int b)
{
    return a < b ? a : b;
}
 
void border(int **matr, int I, int J, int N, int n, int m)
{
    int minJ = min(J + N, m - 1);
    int minI = min(I + N, n - 1);
 
    if (I - N >= 0)
        for (int j = max(J - N, 0); j <= minJ; j++)
            matr[I - N][j] = N;
 
    if (I + N <= n - 1)
        for (int j = max(J - N, 0); j <= minJ; j++)
            matr[I + N][j] = N;
 
    if (J - N >= 0)
        for (int i = max(I - N, 0); i <= minI; i++)
            matr[i][J - N] = N;
 
    if (J + N <= m - 1)
        for (int i = max(I - N, 0); i <= minI; i++)
            matr[i][J + N] = N;
}
 
void fill(int **matr, int I, int J, int n, int m)
{
    int N = 1;
 
    do
    {
        border(matr, I, J, N++, n, m);
    }
    while (N != max(n, m));
}
Добавлено через 10 минут
Только что-то никак не могу придумать нормального условия выхода из цикла в функции fill, поэтому сделал такое (чтобы наверняка заполняло всю матрицу, но 99% будут лишние итерации)
 
Текущее время: 01:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru