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

С текстового файла прочитать массив - C++

Восстановить пароль Регистрация
 
stasyano
0 / 0 / 1
Регистрация: 13.09.2009
Сообщений: 101
01.02.2010, 15:37     С текстового файла прочитать массив #1
1. С текстового файла прочитать массив.
1ая строка - количество элементов.
2ая строка - сам массив.
Посчитать сумму элементов до минимального элемента.

2. Тоже самое, только:
Посчитать сумму элементов >после< минимального элемента.

Учусь на 2ом курсе, если не сложно то как нибуть по проще с описанием строк. Оч прошу, сижу на пересдаче ((((
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2010, 15:37     С текстового файла прочитать массив
Посмотрите здесь:

С текстового файла прочитать одномерный массив C++
Прочитать строку из файла и записать ее в массив структуры C++
прочитать массив из файла и отсортировать его по возрастанию C++
C++ Из текстового файла прочитать четные числа и записать их в другой файл (С++)
C++ Из текстового файла прочитать четные числа и записать их в другой файл без использования массива (код С++)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
01.02.2010, 16:05     С текстового файла прочитать массив #2
stasyano, вам уже решали точно такую задачу (№1), в чем проблема?
stasyano
0 / 0 / 1
Регистрация: 13.09.2009
Сообщений: 101
01.02.2010, 16:15  [ТС]     С текстового файла прочитать массив #3
Слишком проффесианально... Нужно попроще
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
01.02.2010, 18:21     С текстового файла прочитать массив #4
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
stasyano, вам уже решали точно такую задачу (№1), в чем проблема?
Да там и #2 решение было... Типа два в одном

stasyano, это как-раз простой вариант был. "Профессионально" на С++ не так бы выглядело. Было бы много заморочек из STL, кода получилось бы гораздо меньше и был бы он гораздо сложнее...
А что в
этом
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
#include <iostream>
#include <fstream>
#include <iomanip>
 
using namespace std;
 
/* возвращает индекс элемента с минимальным значением */
int minIndex(int *arr, int size){
        int min_index, min_value, i;
        
        min_index = 0;
        min_value = arr[min_index];
        for ( i = 1; i < size; ++i ){
                if ( arr[i] < min_value ){
                        min_index = i;
                        min_value = arr[min_index];
                }
        }
        return min_index;
}
 
/* сумма элементов до минимального */
int sumBeforMin(int *arr, int size){
        int min_index = minIndex(arr, size);
        int sum = 0;
        for ( int i = 0; i < min_index; ++i )
                sum += arr[i];
        return sum;
}
 
/* сумма элементов после минимального */
int sumAfterMin(int *arr, int size){
        int min_index = minIndex(arr, size);
        int sum = 0;
        for ( int i = size - 1; i > min_index; --i )
                sum += arr[i];
        return sum;
}
 
int *arrayFromFile(const char *file_name, int *cnt){
        ifstream ifs(file_name);
        if ( !ifs.is_open() )
                return NULL;
        int *arr;
        ifs >> *cnt;
        if ( *cnt < 1 )
                return NULL;
        arr = new int [ *cnt ];
        for ( int i = 0; i < *cnt; ++i ){
                ifs >> arr[i];
                if ( ifs.bad() )
                        return NULL;
        }
        ifs.close();
        return arr;
}
 
void prnArray(int *arr, int size){
        while ( size-- )
                cout << setw(3) << *arr++;
        cout << endl;
}
 
int main(){
        const char *file_name = "data.txt";
        int *arr = NULL, cnt = 0;
        
        if ( ( arr = arrayFromFile(file_name, &cnt) ) == NULL ){
                cerr << "Can't get array from file!" << endl;
                return 1;
        }
        cout << "Array:" << endl;
        prnArray(arr, cnt);
        cout << "Sum befor element with min value: " << sumBeforMin(arr, cnt) << endl;
        cout << "Sum after element with min value: " << sumAfterMin(arr, cnt) << endl;
        
        delete [] arr;
        return 0;
}
не понятно?
Yandex
Объявления
01.02.2010, 18:21     С текстового файла прочитать массив
Ответ Создать тему
Опции темы

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