Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2023, 01:47   #1
lenaiv
Пользователь
 
Регистрация: 16.03.2023
Сообщений: 67
По умолчанию С++ создать массив удвоенных нечетных чисел

Сформируйте текстовый файл, содержащий 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;
}

Последний раз редактировалось lenaiv; 20.06.2023 в 10:42.
lenaiv вне форума Ответить с цитированием
Старый 20.06.2023, 16:45   #2
lenaiv
Пользователь
 
Регистрация: 16.03.2023
Сообщений: 67
По умолчанию

исправила, но теперь работает не верно, а в программе вреде все логично, подскажите, где не так что
Код:
#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;
}
lenaiv вне форума Ответить с цитированием
Старый 20.06.2023, 18:33   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Массив b не нужен; k не должно быть равно n, иначе будет выход за границы массива; проверка на нечетность осуществляется через оценку остатка от деления на 2; вот цикл считывания:
Код:
    while ((f1 >> chislo) && k < n)
        if (chislo % 2)
        {
            a[k] = chislo * 2;
            k++;
        }
В циклах сортировки и печати замените n на k, т.к. всего k чисел хранится в массиве.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан целочисленный массив X(N,M).среди элементов нечетных столбцов массива найти количество четных чисел. darwin1 Паскаль, Turbo Pascal, PascalABC.NET 1 15.03.2014 17:50
Сформировать список целых чисел и посчитать сумму нечетных чисел bwitcher Помощь студентам 6 23.03.2013 18:08
Дан массив x целых чисел. Упорядочить элементы, стоящие на четных местах по невозрастанию, а на нечетных – по неубыванию. NuclearMurder Помощь студентам 0 11.11.2012 17:43
Дан массив из 10 целых чисел. Подсчитать сумму квадратов элементов, стоящих на нечетных местах. sanjer21 Паскаль, Turbo Pascal, PascalABC.NET 1 25.04.2012 14:15
Создать двоичный файл, записать n целых чисел. Из файла создать массив, элементы числа-палиндромы (на C) Simak63 Помощь студентам 0 30.03.2011 21:06