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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Суммирование заданного количества цифр http://www.cyberforum.ru/cpp-beginners/thread91626.html
У Дейтлов есть задачка: Напишите программу, которая суммирует последовательность целых чисел. Полагайте, что первое прочитанное целое число указывает количество целых чисел, которые далее будут введены. Ваша программа должна читать только по одному значению в операторе ввода. Типичная входная последовательность может иметь вид 5 100 200 300 400 500 где 5 показывает, что будет введено...
C++ вывод массива указателей String Есть строка str и указатель *string_str на строку типа String #include <iostream> #include <windows.h> #include <fstream> #include <cstdlib> #include <string> #include <clocale> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread91624.html
C++ Вопрос про указатели
char *a = "s"; 1. Выделяется место в памяти 2. В это место записывается s 3. Указателю a приваивают адрес памяти где храниться s так? а почему нельзя вот так int *a = 5;
матрицы... C++
даны две целочисленные квадратные матрицы порядка 6,найти последовательность из нулей и единиц,b1....b6,такую что b1=1 когда все элементы і-й строки первой матрицы больше соответствующих элементов і-й строки второй матрицы
C++ Анализ массива http://www.cyberforum.ru/cpp-beginners/thread91606.html
Здравствуйте, программисты. Помогите решить задачу: "Написать программу, которая вводит значения элементов целочисленного массива, анализирует их и выводит на экран те элементы, которые встречаются в массиве только один раз." Половину написал, вот набросок: #include <cstdlib> #include <iostream> using namespace std; int main() {int n=10;
C++ программа на C++ Добрые люди помогите решить задачу! Написать программу, которая выдает все возможные перестановки симво- лов пятисимвольной строки, вводимой с клавиатуры. заранее благодарен всем откликнувшимся!!! Добавлено через 5 часов 15 минут что нет добрых людей, готовых помочь студенту????? подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
01.02.2010, 18:21     С текстового файла прочитать массив
Цитата Сообщение от 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;
}
не понятно?
 
Текущее время: 21:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru