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

Уменьшить все элементы последовательности на ее минимальный и записать обратно в файл - C++

Восстановить пароль Регистрация
 
Misha_9615
0 / 0 / 0
Регистрация: 30.09.2014
Сообщений: 45
20.10.2015, 11:29     Уменьшить все элементы последовательности на ее минимальный и записать обратно в файл #1
В текстовой файле хранится последовательность целых чисел. прочитать данные из файла и преобразовать последовательность уменьшив все элементы на минимальное значение. В исходный файл дописать полученную последовательность чисел

Добавлено через 29 минут
не запускается
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
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    FILE *f;
    int temp, n=0;
    int Imin, Imax, Min, Max;
    Min = 1000000;
    Max = -1000000;
    if  ((f = fopen("data.txt","rt")) == NULL)
    {
        printf( "ГЋГёГЁГЎГЄГ* îòêðûòèÿ ГґГ*éëГ*: ");
        }
        while(!feof(f))
        {
        fscanf(f, "%d", &temp);
        printf("d ",temp);
        n++;
        if(temp <= Min)
        {
                Min = temp;
                }
                }
                fclose(f);
                for(int i=0; i<n; i++)
                {
                        fprintf(f, "%d", n);
                        }
                        fclose(f); 
 
    system("PAUSE");
    return EXIT_SUCCESS;
}
Добавлено через 1 час 17 минут
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
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    FILE *f;
    int temp, n=0;
    int IMin, IMax, Min, Max;
    Min = 10000000;
    Max = -10000000;
    system("PAUSE");
    if  ((f = fopen("data.txt","rt")) == NULL)
    {
        printf( "Ошибка открытия файла: ");
        }
        while(!feof(f))
        {
        fscanf(f, "%d", &temp);
        printf("d ",temp);
        n++;
        if(temp <= Min)
        {
                Min = temp;
                }
                }
                fclose(f);
                   
                if ((f = fopen("data.txt","tr")) ==NULL)
                {
                       printf( "Ошибка открытия файла: ");
                       }
                       int *x, i =0;
                       x = new int[n];
                       while(!feof(f))
                       {
                       fscanf(f, "%d", &temp);
                       x[i] = temp;
                       i++;
                       }
                       fclose(f);
                       if((f = fopen("data.txt","tr")) ==NULL)
                       {
                       printf("Ошибка открытия файла: ");
                       }
                       for(int i=0; i<n; i++)
                       {
                       fprintf(f, "%d", x[i]-Min);
                       }
                                      
    system("PAUSE");
    return EXIT_SUCCESS;
}
Добавлено через 12 минут
программа вылетает
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2015, 11:29     Уменьшить все элементы последовательности на ее минимальный и записать обратно в файл
Посмотрите здесь:

Все отрицательные элементы массива уменьшить в двое, а все нулевые элементы заменить на... C++
Уменьшить все элементы массива на 20 C++
Матрица. Все элементы последней строки уменьшить на соответствующие элементы третьего столбца C++
Даны действительные числа a1, ., a15. Все члены данной последовательности, начиная с первого положительного, уменьшить на 1 C++
В массив X записать сначала все положительные элементы M1 а затем все отрицательные элементы M2 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ваниль
 Аватар для Ваниль
5 / 5 / 1
Регистрация: 09.05.2013
Сообщений: 43
20.10.2015, 12:12     Уменьшить все элементы последовательности на ее минимальный и записать обратно в файл #2
Во-первых, зачем столько переменных, если они не используются?
Во-вторых, а что, если минимальное число из файла 1000001? Т.е. больше, чем объявленный Min.
В-третьих, на каком моменте вылетает, и что пишет?
Misha_9615
0 / 0 / 0
Регистрация: 30.09.2014
Сообщений: 45
20.10.2015, 12:15  [ТС]     Уменьшить все элементы последовательности на ее минимальный и записать обратно в файл #3
Ваниль, числа я сам запмсываю в файл txt. При компиляции просто крашится программа

Добавлено через 1 минуту
Ваниль, а вылетает сразу после while
Ваниль
 Аватар для Ваниль
5 / 5 / 1
Регистрация: 09.05.2013
Сообщений: 43
20.10.2015, 12:32     Уменьшить все элементы последовательности на ее минимальный и записать обратно в файл #4
Ну, а если кто-то будет писать числа в файл, не зная исходного кода? Это я к тому, что можно выбрать такие входные данные, при которых текущий вариант работать не будет.

После какого while? Тут такая каша, что я не стал в неё вчитываться. Выровняй код нормально.
Misha_9615
0 / 0 / 0
Регистрация: 30.09.2014
Сообщений: 45
20.10.2015, 12:34  [ТС]     Уменьшить все элементы последовательности на ее минимальный и записать обратно в файл #5
Ваниль, я пишу это для себя. 18 строка
Ваниль
 Аватар для Ваниль
5 / 5 / 1
Регистрация: 09.05.2013
Сообщений: 43
20.10.2015, 12:50     Уменьшить все элементы последовательности на ее минимальный и записать обратно в файл #6
В любом случае, хорошая программа должна обработать любые данные.
И код должен быть удобочитаемым! Особенно, если рассчитываешь на помощь со стороны.

У тебя где-то опечатка, но я вредный и не скажу где. Учись пользоваться отладчиком. Удачи!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.10.2015, 13:36     Уменьшить все элементы последовательности на ее минимальный и записать обратно в файл
Еще ссылки по теме:

C++ Все элементы массива уменьшить на 20
Уменьшить все элементы массива на минимальный используя функцию C++
C++ Массивы: все элементы, кратные 10, заменить 0, все нечетные элементы удвоить, а четные уменьшить в 2 раза

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

Или воспользуйтесь поиском по форуму:
nmcf
4265 / 3696 / 1243
Регистрация: 14.04.2014
Сообщений: 14,476
20.10.2015, 13:36     Уменьшить все элементы последовательности на ее минимальный и записать обратно в файл #7
Если файл не открылся, надо программу завершать, а у тебя только сообщение и дальше идёт.
Для записи файл должен быть открыт с "w".
Yandex
Объявления
20.10.2015, 13:36     Уменьшить все элементы последовательности на ее минимальный и записать обратно в файл
Ответ Создать тему
Опции темы

Текущее время: 06:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru