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

Найти максимальную сумму 3 чисел в каждой строке файла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перечислить дни, на которые приходится пятница 13-го числа http://www.cyberforum.ru/cpp-beginners/thread666733.html
компилятор усиленно ругается на vector есть и другие мелкие ошибки.. не могу разобраться,объясните.. *Перечислить дни, на которые приходится пятница 13-го числа в заданном диапазоне лет из интервала 1901-2099 г.г.*/ #include "stdafx.h" #include <cstdlib> #include <iostream>
C++ Написать защиту от ввода чисел с плавающей точкой, отрицательных чисел и символов Привет всем! Вот пишу программу, преподаватель сказал чтобы написал защиту от ввода чисел с плавающей точкой, отрицательных, символов. В общем нужны по условию задачи только натуральные числа. Как это осуществить? Вот моя защита от отр. чисел: cin >> a; while (1) { if (a>0) {cout <<"vvedite granicy b\n";break;} else {cout << "Ne naturalnoe chislo\n" << "Povtorite vvod\n";... http://www.cyberforum.ru/cpp-beginners/thread666723.html
вывод массива gdi+ C++
как вывести (нарисовать) на экран цифры, которые в цикле увеличиваются, т.е. сначала вывести 10, потом 20, 30 и т.д. , есть ли для этого какая то функция? Среда разработки Visual Studio 2008
C++ Найти все пары дружественных чисел, не превосходящих заданного натурального числа N
Два натуральных числа называются дружественными, если каждое из них равно сумме всех делителей другого, кроме самого этого числа. Найти все пары дружественных чисел, не превосходящих заданного натурального числа N.
C++ MFC книги http://www.cyberforum.ru/cpp-beginners/thread666695.html
Доброго времени суток. Посоветуйте какие-нибудь хорошие книги по MFC для новичка. И лучше всего, чтобы их можно было бы скачать) Т.к. на mfc у нас отведено всего 2 недели (такая уж система образования), естественно я не собираюсь ничего покупать:) Благодарю.
C++ Работа с реестром Доброго времени суток. Читаю в MSDN про работу с реестром и, собственно, начал с компиляции примера кода, по этому адресу. // QueryKey - Enumerates the subkeys of key and its associated values. // hKey - Key whose subkeys and values are to be enumerated. #include <windows.h> #include <stdio.h> #include <tchar.h> #define MAX_KEY_LENGTH 255 #define MAX_VALUE_NAME 16383 подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
09.10.2012, 11:52     Найти максимальную сумму 3 чисел в каждой строке файла
maSt, задание я понял так есть пары строк, в одиних числа в дргих буквы, надо найти строку с макс суммой чисел - это строка 1 сумма чисел равна 2365 по логике буквы нижней строки это буквы из строки G H T P L M но никак не последней стркои, которая к первой никакого отношения не имеет
Цитата Сообщение от maSt Посмотреть сообщение
765 458 329 705 120 895
G H T P L M
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
144
145
146
147
148
149
150
151
152
#include <string>
#include <vector>
#include <sstream>
#include <fstream>
#include <iostream>
#include <algorithm>
using namespace std;
 
//ÄóìГ*Гѕ ГїГ±Г*Г® Г·ГІГ® áóäåò õðГ*Г*ГЁГІГј Г¤Г*Г*Г*Г*Гї ñòðêóòóðГ*
struct fData
{
    string digits;
    string symbols;
};
//ÔóГ*êöèÿ âîçâðГ*Г№Г*ГҐГІ ñóììó öèôð ГЁГ§ ïîëÿ digits
double SumDigitsInfData(fData ptr, vector<double> &values);
//ÔóГ*êöèÿ ïðîèçâîäèò Г§Г*ГЇГЁГ±Гј Гў ïîòîê ofstream òðè ïåðâ³õ Г§Г*Г*Г·ГҐГ*ГЁГї ГЁГ§ ïîëåé 
//string digits;
//string symbols;
bool Write3FirstFields(ofstream &ofs, fData ptr, vector<double> values);
 
int main()
{
    bool bFlag = true;//ÔëГ*ГЈ ГіГ±ГЇГҐГёГ*îãî Г·ГІГҐГ*ГЁГї
    string line;//ÑòðîêГ* Г± Г¤Г*Г*Г*ìè ГЁГ§ ГґГ*éëГ*
    int nPairs = 0;//×èñëî ГЇГ*Г° ñòðîê
    fData * pList = NULL;//ГіГЄГ*Г§Г*òåëü Г*Г* äèГ*Г*ìè÷åñêèé Г¬Г*Г±Г±ГЁГў ñòðóêòóð fData
    double maxSum =  0;//ÄóìГ*Гѕ òîæå ГїГ±Г*Г® - Г¬Г*ГЄГ± ñóììГ* ïåðâûõ 3-Гµ öèôð
    int iRowMaxSum= -1;//Áóäåò õðГ*Г*ГЁГІГј ГЁГ*äåêñ ñòðêîè Г± Г¬Г*ГЄГ± ñóììîé öèôð
    int i;//Ñ÷¸ò÷èê
    vector<double> RowValues;//âåêòîð äëÿ Г§Г*Г*Г·ГҐГ*ГЁГ© ñòðîêè digits
    ofstream ofs;//ÓêГ*Г§Г*òåëü Г*Г* ïîòîê Г§Г*ГЇГЁГ±ГЁ ìû ïðîèГ*èöèГ*ëèçèðóåì ГҐГЈГ® ïîçæå
    ifstream ifs("input.txt");
    if(!ifs.is_open())
        cout<<"Error open input.txt"<<endl;
    else
    if(!(ifs>>nPairs))
        cout<<"Incorrect file format"<<endl;
    else
    if(!(pList = new fData[nPairs]))
        cout<<"Allocation memory error"<<endl;
    else
    {
        ifs.get();
        for(i = 0; i < nPairs && !ifs.eof() && bFlag; i++)
        {
            if(!getline(ifs,pList[i].digits)) //Ïðîáóåì Г±Г·ГЁГІГ*ГІГј ñòðîêó öèôð
                bFlag = false;
            else
            if(!getline(ifs,pList[i].symbols))//Ïðîáóåì Г±Г·ГЁГІГ*ГІГј ñòðîêó ñèìâîëîâ
                bFlag = false;
            else
            {
                cout<<"\tPair # "<<i + 1<<endl;
                cout<<"Digits : "<<pList[i].digits<<endl;
                cout<<"Symbols: "<<pList[i].symbols<<endl;
            }
        }
        if(!bFlag)
            cout<<"During parsing file errors occured"<<endl;
        else
        {
            iRowMaxSum = 0;
            //Г€Г*èöèГ*ëèçèðóåì maxSum ñóììîé öèôð ïåðâîé ñòðîêè
            for(i = 1; i < nPairs && bFlag; i++)
            {
                if(SumDigitsInfData(pList[iRowMaxSum], RowValues) < SumDigitsInfData(pList[i],RowValues))
                    iRowMaxSum = i;
            }
            
            cout<<"Number of Pair with max sum 1-st digits : "<<iRowMaxSum + 1<<endl;
            cout<<"Digits : "<<pList[iRowMaxSum].digits<<endl;
            cout<<"Symbols: "<<pList[iRowMaxSum].symbols<<endl;
            cout<<"Sum    : "<<SumDigitsInfData(pList[iRowMaxSum], RowValues)<<endl;
            cout<<"Numbers: "<<RowValues[0]<<" + "<<RowValues[1]<<" + "<<RowValues[2]<<endl;
            ofs.open("output.txt");
            if(!ofs.is_open())
                cout<<"Error creation output.txt"<<endl;
            else
            if(!Write3FirstFields(ofs, pList[iRowMaxSum], RowValues))
                cout<<"Error during write to file"<<endl;
            else
                cout<<"Writing OK"<<endl;
        }
        delete [] pList;//Г—ГЁГ±ГІГЄГ* ГЇГ*ìÿòè
    }
    ifs.close();
    ofs.close();
    return 0;
}
 
bool bComp(double left, double right)
{
    return left > right;
}
 
double SumDigitsInfData(fData ptr, vector<double> &values)
{
    stringstream ss(ptr.digits);
    values.clear();
    double value = 0;
    for(int i = 0; !ss.eof(); i++)
    {
        if(ss>>value)
            values.push_back(value);
    }
    sort(values.begin(), values.end(), bComp);
    return values[0] + values[1] + values[2];
}
 
bool Write3FirstFields(ofstream &ofs, fData ptr, vector<double> values)
{
    int i, j;
    int indexes[3]  = {0};
    bool bFlag = 3 <= values.size();
    double val = 0;
    char symbol= 0;
    stringstream ss;
    ss.str(ptr.digits);
    cout<<"\tWrite in file"<<endl;
    for(j = (i = 0); i < 3 && bFlag && !ss.eof(); j++)
    {
        if(!(ss>>val))
            bFlag = false;
        else
        if(val == values[0] || val == values[1] || val == values[2])
        {
            indexes[i] = j;
            cout<<val<<" ";
            ofs<<val<<" ";
            i++;
        }
    }
    ofs<<endl;
    cout<<endl;
    ss.clear();//Ñáðîñèëè ГґГ«Г*ГЈ EOF
    ss.seekg(0,ios::beg);//ÓñòГ*Г*îâèëè ГіГЄГ*Г§Г*òåëü ГўГ*Г*Г·Г*ëî
    ss.str(ptr.symbols);
    for(j = (i = 0); i < 3 && bFlag && !ss.eof(); j++)
    {
        if(!(ss>>symbol))
            bFlag = false;
        else  
        if(indexes[i] == j)
        {
            cout<<symbol<<" ";
            ofs<<symbol<<" ";
            i = i + 1;
        }
    }
    return bFlag;
}
Миниатюры
Найти максимальную сумму 3 чисел в каждой строке файла  
 
Текущее время: 02:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru