Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
4 / 3 / 2
Регистрация: 01.08.2015
Сообщений: 72
1

Поиск минимального числа в файле

03.07.2017, 11:05. Показов 1776. Ответов 1
Метки нет (Все метки)

Здравствуйте, прошу помогите.
По заданию надо сделать программу которая будет искать минимальное значение в каждой строке файла, а затем выводить эти строки предварительно заменив минимальный элемент строки средним арифметическим всех элементов строки (округлить до целого тип int), если в строке два и более минимальных числа то заменить последний из них. Процесс поиска минимального числа должна осуществлять отдельная функция. Числа в файле разделены одним пробелом.
Пожалуйста помогите.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.07.2017, 11:05
Ответы с готовыми решениями:

Поиск минимального и максимального значения в файле
Добрый вечер, прошу помощи от Вас. Нужно найти минимум и максимум в txt файле и занести значения...

Поиск минимального и среднего для каждой строки в файле
Здравствуйте! Из текстового файла надо было считать данные и посчитать среднее и минимальное...

Рекурсия: поиск минимального числа в списке, содержащем целые числа
Создать рекурсивную реализацию функции поиска минимального числа в списке, содержащем целые числа....

Найти порядковый номер минимального числа в файле
Имеется файл с числами. Найти порядковый номер минимального числа в файле. Если таких чисел...

1
70 / 70 / 56
Регистрация: 04.06.2016
Сообщений: 235
03.07.2017, 16:00 2
Лучший ответ Сообщение было отмечено vidik как решение

Решение

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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#include <conio.h>
#include <stdio.h>
#include <Windows.h> 
 
 
char* read_string(FILE *fp) {
 
    char c; int len = 0;
    long int pos = ftell(fp);
    while (1) {
 
        c = fgetc(fp);
 
        if (c == '\n') {
 
            break;
 
        }
 
        else len++;
 
        if (feof(fp)) break;
 
    }
    if (len == 0) return NULL;
    char *s = new char[len + 1];
    fseek(fp, pos, SEEK_SET);
    int i = 0;
    while (1) {
 
        c = fgetc(fp);
 
        if (c == '\n') {
 
            break;
 
        }
 
        else {
            
            s[i] = c;
            i++;
        }
 
        if (feof(fp)) break;
 
    }
    s[i] = '\0';
    return s;
 
}
int GetMinIndex(int *a, int n)
{
    int min = a[0],mini=0;
    for (size_t i = 1; i < n; i++)
    {
        if (a[i] <= min)
        {
            min = a[i];
            mini = i;
        }
    }
    return mini;
}
 
int main()
{
 
    
    FILE *fp = fopen("A:\\Users\\admin\\Desktop\\data.txt", "rt");
 
    if (!fp) {
 
        printf("Can't open file data.txt!"); getchar(); exit(1);
 
    }
    char* s = read_string(fp);
    
    while (strlen(s)>1)
    {
        
        
        char **w = new char *[strlen(s) / 2];
        int num = 0;
        char *token = strtok(s, " ");
 
        while (token) {
 
            int len = strlen(token);
 
            w[num] = new char[len + 1];
 
            strcpy(w[num], token);
 
            num++;
 
            token = strtok(NULL, " ");
 
        }
        delete token;
        if (num)
        {
            int *a = new int[num];
            int avg = 0;
            for (size_t i = 0; i < num; i++)
            {
                a[i] = atoi(w[i]);
                avg += a[i];
                
            }
            avg /= num;
            int mini = GetMinIndex(a, num);
            for (size_t i = 0; i < num; i++)
            {
                a[i] = atoi(w[i]);              
                if (i ==mini)
                {
                    a[i] = avg;
                }
                printf("%d ", a[i]);
            }
 
 
            printf("\n");
            delete []a;
            for (size_t i = 0; i < num; i++)
            {
                delete w[i];
            }
            delete []w;
        }
            s = read_string(fp);
        
            
    }
    
    
 
 
 
    _getch();
    return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.07.2017, 16:00

Найти порядковый номер минимального числа в файле
35 Имеется типизированный файл с числами. Найти порядковый номер минимального числа в файле. Если...

Определение вторых по значению минимального и максимального числа и их позиций в файле
Изменить программу так что-бы она определяла вторые по значению минимальное и максимальное числа и...

Быстрый поиск минимального числа
подскажите быстрый алгоритм поиска второго минимального числа в массиве?

Поиск минимального нечетного числа
Здравствуйте, уважаемые. Возникла проблема с пониманием сути задачи: Дано натуральное число A&gt;0. ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru