Формирование массива из N по K и вывести его отдельным файлом.

Помогите сформировать массив из N по К в широком диапазоне и вывести его отдельным файлом!

Нашел программу, работает в широком диапазоне, но не формирует файл с результатами! Помогите вывести результат в файл.

include <iostream>

using namespace std;
bool NextSet(int a, int n, int m)
{
int k = m;
for (int i = k — 1; i >= 0; --i)
if (a[i] < n — k + i + 1)
{
++a[i];
for (int j = i + 1; j < k; ++j)
a[j] = a[j — 1] + 1;
return true;
}
return false;
}
void Print(int
a, int n)
{
static int num = 1;
cout.width(3);
cout << num++ << «: »;
for (int i = 0; i < n; i++)
cout << a[i] << « »;
cout << endl;
}
int main()
{
int n, m, *a;
cout << «N = »;
cin >> n;
cout << «M = »;
cin >> m;
a = new int[n];
for (int i = 0; i < n; i++)
a[i] = i + 1;
Print(a, m);
if (n >= m)
{
while (NextSet(a, n, m))
Print(a, m);
}
cin.get(); cin.get();
return 0;
}

На всякий случай:

#include <fstream>
#include <iostream>

void Print(int *a, const int N, const int M)
{
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < M; j++)
            std::cout << *(a + i * M + j) << " : ";
        std::cout << "\n";
    }
}

void WriteToFile(int *a, const int N, const int M) {
    // создаём объект класса ofstream для записи и связываем его с файлом NMArray.txt
    std::ofstream fout("NMArray.txt");
    if (fout.is_open()) {
        for (int i = 0; i < N; i++) {
            for (int j = 0; j < M; j++)
                fout << *(a + i * M + j) << " "; // запись строки в файл
        }
    }
    fout.close(); // закрываем файл
}

int main()
{
    int n, m, *a;
    std::cout << "N = ";
    std::cin >> n;
    std::cout << "M = ";
    std::cin >> m;
    a = new int[n * m];
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
            *(a + i * m + j) = i * m + j + 1;
    Print(a, n, m);
    WriteToFile(a, n, m);
    std::cin.get();
    std::cin.get();
    return 0;
}

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.