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

Заменить в каждой строке файла элементы с наибольшим значением нулем - C++

Восстановить пароль Регистрация
 
Lizo4ka
1 / 1 / 0
Регистрация: 28.06.2011
Сообщений: 16
28.06.2011, 10:14     Заменить в каждой строке файла элементы с наибольшим значением нулем #1
Дан текстовый файл,состоящий из одной или нескольких строк. Каждая строка файла содержит числа, разделенные пробелами. Заменить в каждой строке элементы с наибольшим значением нулем. Создать файл, который будет содержать данные исходного файла,а затем данные преобразованного файла.

Добавлено через 5 минут
пожалуйста...(((
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.06.2011, 10:14     Заменить в каждой строке файла элементы с наибольшим значением нулем
Посмотрите здесь:

Все элементы с наибольшим значением в целочисленной квадратной матрице порядка 10 заменить нулями C++
Функции на С: в последовательностях все члены, следующие за членом с наибольшим значением, заменить на 0,5 C++
C++ Заменить в каждой строке элементы с наибольшим значением нулём
В массиве все члены, следующие за членом с наибольшим значением (за первым по порядку, если их несколько), заменить на 0.5. C++
C++ Дана действительная матрица размером пхт, все элементы которой различны. В каждой строке выбирается элемент с наименьшим значением, затем среди этих ч
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
28.06.2011, 14:44     Заменить в каждой строке файла элементы с наибольшим значением нулем #2
Вот, держи.
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
#include <fstream>
#include <iostream>
#include <conio.h>
using namespace std;
#define   LINE_LEN     512
 
 
 
// подсчёт пробелов
int   count_space(fstream*  fp) {
       int     len = 0;
       char   buf[LINE_LEN];
       fp->getline(buf, LINE_LEN, '\n');
       char*  str = buf;
       while( *str ) {
                if( *str == ' ' )
        len++;
        *str++;
       }
       fp->seekp(0);
     return len;
}
 
 
// изменяем максимумы на нуль
void    change(int*  arr, int *end) {
      int*   num = arr;
      int*   iter  = arr;
      while( iter != end ) {
     if( *iter >= *num )
        num = iter;
    *iter++;
      }
      while( arr != end ) {
    if( *arr == *num )
        *arr = 0;
    ++arr;
       }
}
 
 
void main (void) {
 
    fstream   fin("in.txt", ios_base::in);
    fstream   fout("out.txt",  ios_base::out);
 
    int   cols = count_space(&fin) + 1;
    int*  arr   = new int[ cols ];
    int    cnt  = 0;
    
    while(! fin.eof() ) {
         char   buf[LINE_LEN];
         fin.getline(buf, LINE_LEN, '\n');
         for(char*  tok = strtok(buf, " "); tok; tok = strtok(NULL, " ")) 
                  arr[cnt++] = atoi(tok);
         cnt = 0;
         change(arr, arr + cols);
         for(int i = 0; i < cols - 1; i++)
                  fout << arr[i] << ' ';
         fout << arr[cols - 1] << '\n';
    }
 
    fout.close();
    fin.close();
    
    delete[] arr;
    arr = NULL;
 
    cin.get();
}
in.txt - исходный файл
2 3 4 4
7 4 8 7
1 2 1 9
5 4 3 4


out.txt - выходной файл
2 3 0 0
7 4 0 7
1 2 1 0
0 4 3 4
Lizo4ka
1 / 1 / 0
Регистрация: 28.06.2011
Сообщений: 16
29.06.2011, 09:39  [ТС]     Заменить в каждой строке файла элементы с наибольшим значением нулем #3
Спасибо,только программу выдает ошибку в библиотеках..и в имени тоже..что делать??
co6ak
29.06.2011, 09:42
  #4

Не по теме:

надо бы эту особь вырезать по маку...

Lizo4ka
1 / 1 / 0
Регистрация: 28.06.2011
Сообщений: 16
29.06.2011, 09:49  [ТС]     Заменить в каждой строке файла элементы с наибольшим значением нулем #5
извините пожалуйста,не указала язык..мне на Си нужно((
Yandex
Объявления
29.06.2011, 09:49     Заменить в каждой строке файла элементы с наибольшим значением нулем
Ответ Создать тему
Опции темы

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