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

Третье по величине значение - C++

Восстановить пароль Регистрация
 
Uka4me
1 / 1 / 0
Регистрация: 08.05.2013
Сообщений: 12
08.05.2013, 17:42     Третье по величине значение #1
В массиве из 10 целых чисел, найти третье по величине(наибольшее) число.

На входе:
1000
1 1 2 3 4 5 6 7 8 9 1000
2 338 304 619 95 343 496 489 116 98 127
3 931 240 986 894 826 640 965 833 136 138
4 940 955 364 188 133 254 501 122 768 408
5 42 468 335 501 170 725 479 359 963 465

на выходе:
1 8
2 489
3 931
4 768
5 501

Где-то в моей программе есть ошибка вычисления этого числа, помогите, пожалуйста, найти ее. Вручную перебираю массивы, вроде правильно программа выдает.

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
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <fstream>
#include <sstream>
#include <string.h>
using namespace std;
int zzz = 0;
void WriteFile1(char* file_name, string str[])
{
     ofstream wr(file_name); 
     for(int i=0;i<zzz;i++)
     if(i != zzz-1)
        wr<<(i+1)<<" "<<str[i]<<"\n";
     else
         wr<<(i+1)<<" "<<str[i];
}
 
string Sort(int a[])
{
 for (int i = 1; i < 11; i++)
 {
       for (int j = i+1; j < 11; j++)
          if (a[i] < a[j])
          {
             int buf = a[i];
             a[i] = a[j];
             a[j] = buf;
          }  
 }
   std::stringstream ss;
    std::string s;
    ss << a[3];
    s = ss.str();
   return s;            
}
 
void ReadFile1(char* file_name)
{
  string line;
  int mas[11];
  string rmas[2000];
  
  ifstream myfile(file_name);
  if (myfile.is_open())
  {
    getline(myfile,line);
    while ( myfile.good() )
    {
      getline(myfile,line);
      
      
     char *p = strtok(const_cast <char*> (line.c_str()), " " );
     int t=0;
     while (p != '\0')
     {
      mas[t] = atoi(p);
      p = strtok (NULL, " ");
      t++;
      }
      rmas[zzz] = Sort(mas);
      zzz++;
    }
    myfile.close();
  }      
  
 
  WriteFile1("output.txt",rmas);
}
 
int main(int argc, char *argv[])
{
    ReadFile1("input.txt");
    //system("PAUSE");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2013, 17:42     Третье по величине значение
Посмотрите здесь:

Найти значение 3-го по величине элемента и значения всех элементов массива, которые его превышают, заменить на найденное значение C++
Найти значение 3-го по величине элемента и значение всех элементов массива, которые его превышают, заменить на найденное значение C++
найти значение третьего по величине элемента массива C++
C++ Цикл while: Определить значение второго по величине элемента в этой последовательности
Определить значение второго по величине элемента в последовательности чисел C++
C++ среди чисел k,l,r два одинаковых,а в третье отлично от них.Переменной n присвоить значение числа,отличного от двух одинаковых
C++ Почему в массив из двух элементов можно ввести третье значение?
C++ Найти значение и индексы максимального по абсолютной величине элемента матрицы

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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