Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 08.11.2009
Сообщений: 7

Работа с файлами

09.03.2012, 19:20. Показов 759. Ответов 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <conio.h>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    int a[10],n,k;
    cout<<"Vvedite razmer massiva v faile> ";
    cin>>n;
 
    ifstream ss("1.txt");
          for (int i=0; i<n; i++)
                  ss>>a[i]; // считываем информацию с файла
 
        for (int i=0;i<n;i++)
            if (a[i]%2==0)
                a[i]=a[i]/2;
 
           for (int i=0;i<n-1;++i) // сортировка массива по возр
            { 
                for (int j=0;j<n-1;++j)
                { 
                    if (a[i]<a[i+1])
                 {
                     k=a[i+1];
                     a[i+1]=a[i];
                     a[i]=k;
                 }
               }
           }
     ofstream vivod("2.txt");
            for (int i=0; i<n; i++)
              vivod<<a[i]<<" "; // загоняем массив в выходной файл
    getch();
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.03.2012, 19:20
Ответы с готовыми решениями:

Работа с файлами
Всем добрый вечер. Столкнулся с несколькими проблемами - попытаюсь все обьяснить. Существует практически готовая программа, но есть...

Работа с файлами C++
Условие: Скопировать из файла F1 в файл F2 все строки, в которых содержится два одинаковых слова. Определить номер слова, в котором больше...

Работа с файлами
написать программу на языке программирования С++ для выполнения задания. Обработку массивов выполнять с помощью функций;

5
программист С++
 Аватар для sandye51
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
09.03.2012, 19:34
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
#include <iostream>
#include <fstream>
#include <vector>
#include <iterator>
#include <vector>
#include <algorithm>
 
template <typename T, unsigned int n>
class transfor :
    public std::unary_function<T, void>
{
public:
    void operator() (T& value) const
    {
        if (value % n != 0)
            value %= n;
    }
};
 
int main()
{
    std::string fileName;
    std::fstream file;
    
    std::cout << "Введите имя файла: " << std::endl;
    std::cin >> fileName;
    
    file.open(fileName.c_str(), std::ios::in);
    if (file.fail())
    {
        std::cerr << "Файл " << fileName << " не найден" << std::endl;
        system("Pause");
        return EXIT_FAILURE;
    }
    
    std::vector<int> numbers;
    std::copy(std::istream_iterator<int>(file), std::istream_iterator<int>(), std::back_inserter(numbers));
    
    file.close();
    
    std::for_each(numbers.begin(), numbers.begin(), transfor<int, 2u>());
    std::sort(numbers.begin(), numbers.end());
    
    std::copy(numbers.begin(), numbers.end(), std::ostream_iterator<int>(std::cout, " "));
 
    system("Pause");
    return 0;
}
0
0 / 0 / 0
Регистрация: 08.11.2009
Сообщений: 7
09.03.2012, 19:44  [ТС]
Что это? о_О
Мне так тяжело не надо, мне бы просто объяснить в чем моя ошибка, вот и все За ответ спасибо конечно!
0
программист С++
 Аватар для sandye51
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
09.03.2012, 19:46
Yanou, у тебя написано сортировка по возр, а в коде наоборот
исправь меньше на больше

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void sort(int* array, unsigned int n)
{
    unsigned int iter = 0;
    bool next = true;
    while (next)
    {
        next = false;
        for (unsigned int i = 0; i < n - iter - 1; ++i)
            if (array[i] > array[i + 1])
            {
                std::swap(array[i], array[i + 1]);
                next = true;
            }
        iter++;
    }
}
0
0 / 0 / 0
Регистрация: 08.11.2009
Сообщений: 7
09.03.2012, 19:52  [ТС]
Пробовал, он вообще выдает массив в каком то левом порядке, например для чисел 1 2 6 5 4 3 10 5 3 8, после деления на два получается так - 1 1 3 5 2 3 5 5 3 4. потом считай должен отсортировать, а получается тоже самое - 1 1 3 5 2 3 5 5 3 4. т.е. он вообще не сортирует...
0
программист С++
 Аватар для sandye51
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
09.03.2012, 21:46
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
#include <cstdlib>
#include <iostream>
 
void sort(int* array, unsigned int n)
{
    unsigned int iter = 0;
    bool next = true;
    while (next)
    {
        next = false;
        for (unsigned int i = 0; i < n - iter - 1; ++i)
            if (array[i] > array[i + 1])
            {
                std::swap(array[i], array[i + 1]);
                next = true;
            }
        iter++;
    }
}
 
int main()
{
    srand(static_cast<unsigned int>(time(NULL)));
    setlocale(LC_ALL, "Russian");
    static const unsigned short int size = 10;
    std::cout << "Массив: " << std::endl;
    int vector[size];
    for (unsigned int i = 0; i < size; ++i)
    {
        vector[i] = rand() % 100;
        std::cout << vector[i] << " ";
    }
    std::cout << std::endl << "Сортированный массив" << std::endl;
    sort(vector, static_cast<unsigned int>(size));
    for (unsigned short int i = 0 ; i < size; ++i)
        std::cout << vector[i] << " ";
    std::cout << std::endl;
    system("Pause");
    return EXIT_SUCCESS;
}
вывод:
Code
1
2
3
4
Массив: 
32 84 18 90 21 11 83 97 14 83 
Сортированный массив
11 14 18 21 32 83 83 84 90 97
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.03.2012, 21:46
Помогаю со студенческими работами здесь

Работа с файлами
Все привет! Возник вопрос. Имеется текстовый файл. В нем есть несколько строк. Мне необходимо изменять их и добавлять новые данные в файл. ...

Работа с файлами
у кого есть рабочие примеры роботы с тестовыми файлами на С(считать с файла и вывести на экран,записать в файл.... ) поделитесь кодом...

Работа с файлами
Есть файл file.txt и он содержит 3 числа, розделенных пробелом, например, 3 2 0.1 Как считать информацию с файла и записать эти числа в...

Работа с файлами!
В каждой строке записано произвольное количество чисел, записанных в форме f. Сформировать новый файл, дописав в начало каждой строки...

Работа с файлами
Задача по информатике: В файле input.txt задано арифметическое выражение состоящее из цифр, букв, скобок и знаков арифметических...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru