На основе исходного файла создать массив удвоенных нечетных чисел. Упорядочить его по возрастанию элементов
Не пойму, где ошибка, возникает одна, исправляю, возникает другая и не запускается программа. Мое условие: Сформируйте текстовый файл, содержащий n целых чисел. На основе исходного файла создать массив удвоенных нечетных чисел. Упорядочить его по возрастанию элементов. Моя программа:
#include <fstream>
#include <iostream>
#include <sstream>
#include <windows.h>
using namespace std;
int main()
{
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
const int n = 10;
int chislo, i, j, a[n], b[n], c, d;
ifstream f1;
ofstream f2;
f1.open("C:\\Users\\Я\\source\\repos\\f11.txt");
if (!f1)
{
cout << "Файл f11 не открывается\n";
return 1;
}
if (f1.is_open())
{
for (i = 0; i < n; i++)
{
if (chislo / 2 != 0)
{
b[i] = a[i]*a[i];
}
}
f1.close();
}
for (i = 0; i < n; i++) // упорядочиваем по возрастанию
{
c = i;
for (j = i; j < n; j++)
if (b[j] < b[c]) c = j;
d = b[i];
b[i] = b[c];
b[c] = d;
}
cout << "Массив, упорядоченный по возрастанию:" << endl;
for (int i = 0; i < n; i++)
{
cout << b[i] << "\t";
}
cout << endl;
return 0;
}
исправила, но выдает не верно
#include <fstream>
#include <iostream>
#include <sstream>
#include <windows.h>
using namespace std;
int main()
{
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
const int n = 10;
int chislo, i, j, a[n], b[n], d;
ifstream f1;
ofstream f2;
f1.open("F:\\repos\\f11.txt");
if (!f1)
{
cout << "Файл f11 не открывается\n";
return 1;
}
int k = 0;
while ((f1 >> chislo) && k <= n)
{
if (chislo / 2 != 1)
{
a[k] = chislo * 2;
}
else
b[k] = chislo;
k++;
}
for (i = 0; i < n - 1; i++) // упорядочиваем по возрастанию
{
for (j = i + 1; j < n; j++)
{
if (a[i] > a[j])
{
d = a[j];
a[j] = a[i];
a[i] = d;
}
}
}
cout << "Массив, упорядоченный по возрастанию:" << endl;
for (i = 0; i < n; i++)
{
cout << a[i] << "\t";
}
cout << endl;
return 0;
}