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

Вычислить количество элементов массива, не больших -5 - C++

Восстановить пароль Регистрация
 
Love-Love
 Аватар для Love-Love
6 / 6 / 0
Регистрация: 27.10.2012
Сообщений: 94
04.03.2013, 17:49     Вычислить количество элементов массива, не больших -5 #1
вычислить количество элементов не больших -5 в одномерном массиве А.
Задание дано на работу с файлами. Результат нужно записать в тот же ф-л, из которого и брались числа(дописать в конец). Если возможно, помогите написать код и небольшие комментарии к нему.
Спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2013, 17:49     Вычислить количество элементов массива, не больших -5
Посмотрите здесь:

Найти количество элементов массива, больших заданного С C++
Найти количество элементов массива, больших или равных 5 C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: количество элементов массива, больших С, произведение. C++
C++ Найти количество элементов, больших 5, среди элементов главной диагонали, вычислить среднее арифметическое
C++ Вычислить количество элементов массива целых M [15] больших квадрата первого элемента этого массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
StormSpirit
 Аватар для StormSpirit
6 / 6 / 2
Регистрация: 13.02.2013
Сообщений: 32
04.03.2013, 17:51     Вычислить количество элементов массива, не больших -5 #2
Уточните, в каком виде задан массив. Это поможет помочь Вам =)
Love-Love
 Аватар для Love-Love
6 / 6 / 0
Регистрация: 27.10.2012
Сообщений: 94
04.03.2013, 17:53  [ТС]     Вычислить количество элементов массива, не больших -5 #3
Цитата Сообщение от StormSpirit Посмотреть сообщение
Уточните, в каком виде задан массив. Это поможет помочь Вам =)
к сожалению, на данный момент у меня нет данных массива. Я знаю, что он - одномерный...Если возможно, то просто придумайте собственный, а после я уже исправлю на тот, что будет нужен мне...Благодарствую заранее!
StormSpirit
 Аватар для StormSpirit
6 / 6 / 2
Регистрация: 13.02.2013
Сообщений: 32
05.03.2013, 13:43     Вычислить количество элементов массива, не больших -5 #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Как и обещал (возможно это не самое красивое и элегантное решение, но у меня работает):
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
#include <fstream>
#include <iostream>
#include <stdlib.h>
 
using namespace std;
 
void CreateFile(string filename)
{
    const int n=30;
    ofstream outfile(filename.c_str());
    if (outfile.eof()) cout << "Empty file" << endl;
    else cout << "???" << endl;
    outfile << "{";
    for (int i=0; i<n; i++) 
    {
        outfile << 128 - rand()%0xff;
        if (i<n-1) outfile << ", ";
    }
    outfile << "}";
 
    outfile.close();
}
 
 
void CountLessThanMinus5(string filename)
{
    ifstream infile(filename.c_str());
    char ch;
    bool read_number = 0;
    string number;
    int quantity=0;
    while (infile.get(ch))
    {
        if (ch == ',') 
        {
            read_number = 0;
        }
        if (read_number)
        {
            number += ch;
        }
        if (ch == '-') 
        {
            read_number = 1;
        }
        
        if ((number.length() > 0) && !read_number)
        {
            //Compare number with '5'
            if (number.length() > 1) 
            {
                cout << number << " ";
                quantity++;
            }
            else 
            {
                if (static_cast<char>(number[0]) > '5') 
                { 
                    cout << number << " ";
                    quantity++;
                }
            }
            number = "";
        }
        
    }
    cout << endl;
    cout << "quantity: " << quantity << endl;
    infile.close();
    ofstream inoutfile(filename.c_str(), ios_base::out|ios_base::app);
    inoutfile << "\n Paam-pa-ba-ba-bam! " << endl;
    inoutfile << "Quantity of numbers that are less than -5 is " << quantity << endl;
    inoutfile.close();
}
 
 
int main()
{
    CreateFile("array.txt");
    CountLessThanMinus5("array.txt");
    cout << "Success!" << endl;
    return 0;
}
Комментариев мало, вернее почти нет. Будет лучше, если Вы напишите их самостоятельно - так Вы лучше разберетесь. Если что-то непонятно - спрашивайте.
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
05.03.2013, 15:05     Вычислить количество элементов массива, не больших -5 #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Добавлю свой вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <fstream>
#include <algorithm>
#include <iterator>
#include <functional>
#include <vector>
 
int main() 
{
    std::fstream file("D:/File.txt", std::ios::in | std::ios::out | std::ios::app);
    if (file.is_open()) {
        std::vector<int> v( (std::istream_iterator<int>(file)), std::istream_iterator<int>());
        if (!file)
            file.clear();
        //for (int x : v) std::cout<<x<<" ";
        file<<"\nCount of number that greater -5:  "
                <<std::count_if(v.begin(), v.end(), std::bind(std::greater<int>(), std::placeholders::_1, -5))<<"\n";
        file.close();
    } else {
        std::cout << "Error opening file..." << std::endl;
    }
    return 0;
}
Love-Love
 Аватар для Love-Love
6 / 6 / 0
Регистрация: 27.10.2012
Сообщений: 94
05.03.2013, 15:07  [ТС]     Вычислить количество элементов массива, не больших -5 #6
Спасибо вам большое!!!
Осталось только разобраться с вашими вариантами!


Еще раз БЛАГОДАРСТВУЮ!
Yandex
Объявления
05.03.2013, 15:07     Вычислить количество элементов массива, не больших -5
Ответ Создать тему
Опции темы

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