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

сумма 5 наибольших чисел - C++

Восстановить пароль Регистрация
 
serg102030
0 / 0 / 0
Регистрация: 17.02.2010
Сообщений: 3
17.02.2010, 16:33     сумма 5 наибольших чисел #1
люди помагите пожалуйста я ни как не могу ввести 25 чисел с экрана в статическую память.Найти сумму 5 наибольших чисел. Вывести их и результат в текстовый файл !!!!зарание спс!!!!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
17.02.2010, 17:46     сумма 5 наибольших чисел #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
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <functional>
#include <numeric>
#include <algorithm>
#include <vector>
 
/*
*   ввести 25 чисел.Найти сумму 5 наибольших чисел. 
*   Вывести их и результат в текстовый файл.
*/
 
int main(){
    const int ARRAY_SIZE = 25;
    const int NUMBERS_NEEDED = 5;
    std::vector<int> arr(ARRAY_SIZE);
    
    for ( int i = 0; i < ARRAY_SIZE; ++i ){
        std::cout << "ARRAY[" << i << "] = ";
        std::cin >> arr[i];
    }
    
    std::sort(arr.begin(), arr.end(), std::greater<int>());
    int sum = std::accumulate(arr.begin(), arr.begin() + NUMBERS_NEEDED, 0);
    std::ostringstream ost;
    std::copy(arr.begin(), arr.begin() + NUMBERS_NEEDED, std::ostream_iterator<int>(ost, " + "));
    ost << "0 = " << sum;
    std::cout << ost.str() << std::endl;
    std::cout << "Enter name of output file: ";
    std::string file_name;
    std::cin >> file_name;
    std::ofstream fout(file_name.c_str());
    if ( !fout.is_open() ){
        std::cerr << "Can't open " << file_name << " for output!" << std::endl;
        return 1;
    }
    fout << ost.str() << std::endl;
    if ( fout.bad() ){
        std::cerr << "Can't write to file!" << std::endl;
        return 1;
    }
    std::cout << "Done." << std::endl;
    fout.close();
    return 0;
}
Добавлено через 2 минуты
и ещё лишний плюс выводит...
BornLeader
50 / 46 / 1
Регистрация: 16.05.2008
Сообщений: 162
17.02.2010, 18:03     сумма 5 наибольших чисел #3
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
#include <iostream>
#include <algorithm>
#include <fstream>
using namespace std;
 
void Input(int* ptr,int sz)
{
  for(int i=0;i<sz;i++)
    cin >> ptr[i];
}
void Output(ofstream& ofs, int* ptr, int sz)
{
  int nCount = 0;
  for(int i = 0;i<sz;i++)
  {
    nCount += ptr[i];
    ofs << *(ptr+i) << " ";
  }
  ofs << "\nSum  = " << nCount << endl;
}
 
int main(void)
{
  const int size= 25;
  int array[size]={0};
  Input(array,size);
  sort(array,array+size);
  ofstream ofs("output.txt");
  Output(ofs,array+size-5,5);
  ofs.close();
  return 0;
}
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
17.02.2010, 18:17     сумма 5 наибольших чисел #4
25 чисел с экрана
Это как?

Добавлено через 3 минуты
serg102030:
Лучше бы сказал сразу на каком языке делать надо.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
17.02.2010, 18:55     сумма 5 наибольших чисел #5
Цитата Сообщение от Genius Ignat Посмотреть сообщение
Лучше бы сказал сразу на каком языке делать надо.

Не по теме:

Я так понимаю - если не указан, пиши на каком хочешь. Мне, например, гораздо важнее самому научиться, чем какого-нибудь лентяя от неуда по информатике спасти...

Yandex
Объявления
17.02.2010, 18:55     сумма 5 наибольших чисел
Ответ Создать тему
Опции темы

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