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

Дан одномерный массив - C++

Войти
Регистрация
Восстановить пароль
 
vladimmir
0 / 0 / 0
Регистрация: 11.05.2011
Сообщений: 18
27.08.2011, 14:37     Дан одномерный массив #1
Дан одномерный массив.Определить количество максимальных элементов в массиве.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silentnuke
Android Programmer
137 / 138 / 5
Регистрация: 08.12.2010
Сообщений: 421
27.08.2011, 14:41     Дан одномерный массив #2
ну и в чем проблема?
vladimmir
0 / 0 / 0
Регистрация: 11.05.2011
Сообщений: 18
27.08.2011, 14:44  [ТС]     Дан одномерный массив #3
единственная проблема в том что ужасно понимаю программирование=( и неумею проги писать только начал учиться
Thinker
Эксперт C++
 Аватар для Thinker
4216 / 2190 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
27.08.2011, 14:48     Дан одномерный массив #4
Цитата Сообщение от vladimmir Посмотреть сообщение
единственная проблема в том что ужасно понимаю программирование=( и неумею проги писать только начал учиться
И так что вам нужно, вопрос какой-то или программа? Если программа, то как вы будете сами учиться?
vladimmir
0 / 0 / 0
Регистрация: 11.05.2011
Сообщений: 18
27.08.2011, 14:50  [ТС]     Дан одномерный массив #5
я учусь по программе по примерам потом стараюсь сам написать её или что то аналогичное но несмотря на старые
Thinker
Эксперт C++
 Аватар для Thinker
4216 / 2190 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
27.08.2011, 14:56     Дан одномерный массив #6
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 <stdlib.h>
const int N = 10;
 
int MaxCount(int *a, int n)
{
   int i, count, max;
   count = 0;
   max = a[0];
   for (i = 0; i < n; i++)
      if (a[i] == max)
         count++;
      else if (a[i] > max)
      {
         max = a[i];
         count = 1;
      }
   return count;
}
 
int main()
{
   int a[N], i;
   for (i = 0; i < N; i++)
   {
      a[i] = rand() % 100;
      std:: cout << a[i] << " ";
   }
   std::cout << "\n" << MaxCount(a, N);
   std::cin.get();
   return 0;
}
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
27.08.2011, 14:58     Дан одномерный массив #7
Цитата Сообщение от vladimmir Посмотреть сообщение
стараюсь сам написать
серьезно? Ну тогда и пришлите нам ваш код, даже если он неправильный, мы вам поможем. Но за вас писать тут никто не будет, по крайней мере бесплатно. Заказывайте на фрилансе. Там очень любят такие заказы "Напишите мне программу! Дан одномерный массив.Определить количество максимальных элементов в массиве. Любые деньги!"

Не по теме:

don't feed troll's



Добавлено через 1 минуту
Цитата Сообщение от soon Посмотреть сообщение
Но за вас писать тут никто не будет, по крайней мере бесплатно.
угу... Уже опровергли...
Thinker
Эксперт C++
 Аватар для Thinker
4216 / 2190 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
27.08.2011, 15:00     Дан одномерный массив #8
Цитата Сообщение от soon Посмотреть сообщение
Но за вас писать тут никто не будет, по крайней мере бесплатно.
Ну вот, глупо поступил...Хотя, лишь бы на пользу
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
27.08.2011, 15:01     Дан одномерный массив #9
Цитата Сообщение от Thinker Посмотреть сообщение
Ну вот, глупо поступил...
Ну, я возможно погорячился =)
vladimmir
0 / 0 / 0
Регистрация: 11.05.2011
Сообщений: 18
27.08.2011, 15:02  [ТС]     Дан одномерный массив #10
спасибо за прогу вот теперь буду разбирать её.А насчёт того что на заказ кому то писать я думаю легче нанять репетитора деньги будут и там и там идти но от репетитора пользы больше будет.Но каждый покрайней мере учился как я на готовых прогах разбирая их самостоятельно или с основ в школе
soon
27.08.2011, 15:03
  #11

Не по теме:

Таких тем - море. А люди приходят, как будто только из коляски вылезли - ни гуглом, ни поиском по форуму пользоваться не умеют.

Thinker
Эксперт C++
 Аватар для Thinker
4216 / 2190 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
27.08.2011, 15:04     Дан одномерный массив #12
Цитата Сообщение от soon Посмотреть сообщение
Ну, я возможно погорячился =)
Да нет, вы правы, ваше сообщение правильное. Иногда сливают сюда задачи, а мы их решаем зачем-то, отбираем хлеб у репетиторов
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
27.08.2011, 15:05     Дан одномерный массив #13
Цитата Сообщение от Thinker Посмотреть сообщение
отбираем хлеб у репетиторов
золотые слова!
Сыроежка
Заблокирован
27.08.2011, 21:13     Дан одномерный массив #14
Цитата Сообщение от Thinker Посмотреть сообщение
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 <stdlib.h>
const int N = 10;
 
int MaxCount(int *a, int n)
{
   int i, count, max;
   count = 0;
   max = a[0];
   for (i = 0; i < n; i++)
      if (a[i] == max)
         count++;
      else if (a[i] > max)
      {
         max = a[i];
         count = 1;
      }
   return count;
}
 
int main()
{
   int a[N], i;
   for (i = 0; i < N; i++)
   {
      a[i] = rand() % 100;
      std:: cout << a[i] << " ";
   }
   std::cout << "\n" << MaxCount(a, N);
   std::cin.get();
   return 0;
}
Покажу, как такой код пишут профессиональные программисты на С++.

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
#include   <iostream>
#include   <algorithm>
 
 
template <typename T>
 
class MaxCount : public std::unary_function<T, void>
{
public:
   MaxCount() : initialized( false ), count( 0 ) {}
   void operator ()( const T &x )
   {
      if ( !initialized )
      {
         initialized = true;
         max   = x;
         count = 1;
      }
      else if ( max == x )
      {
         ++count;
      }
      else if ( max < x )
      {
         max   = x;
         count = 1;
      }
   }
 
public:
   size_t count;
 
private:
   bool initialized;
   T max;
};
 
int main()
{
   const size_t N = 10;
   int a[ N ];
   
   // каким-нибудь образом заполняем массив значениями
 
   std::cout << std::for_each( a, a + N, MaxCount<int>() ).count << std::endl;
}
Так как я набирал код, как говорится, "на коленках", то может быть в нем присутствуют какие-нибудь опечатки, которые легко исправить.
Thinker
Эксперт C++
 Аватар для Thinker
4216 / 2190 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
27.08.2011, 22:20     Дан одномерный массив #15
Цитата Сообщение от Сыроежка Посмотреть сообщение
Покажу, как такой код пишут профессиональные программисты на С++....
Ух ты... Надо же, я не и не знал... Ничего, что задачка детская...?

Добавлено через 22 минуты
При этом добавлю, что на форуме есть люди, которые не знают С++ им надо или С, а тут все легко в С переделать. Но это так, к слову.
vladimmir
0 / 0 / 0
Регистрация: 11.05.2011
Сообщений: 18
27.08.2011, 22:30  [ТС]     Дан одномерный массив #16
о перелайте мне на С =) а то я часть только переделал вот остальное пока что думаю
Thinker
Эксперт C++
 Аватар для Thinker
4216 / 2190 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
27.08.2011, 22:37     Дан одномерный массив #17
Ну что же вы это. Ладно, вот, дальше сами программы пишите

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 <stdio.h>
#include <stdlib.h>
#define N 10
 
int MaxCount(int *a, int n)
{
   int i, count, max;
   count = 0;
   max = a[0];
   for (i = 0; i < n; i++)
      if (a[i] == max)
         count++;
      else if (a[i] > max)
      {
         max = a[i];
         count = 1;
      }
   return count;
}
 
int main()
{
   int a[N], i;
   for (i = 0; i < N; i++)
   {
      a[i] = rand() % 100;
      printf("%d ", a[i]);
   }
   puts("\n");
   printf("%d\n", MaxCount(a, N));
   return 0;
}
vladimmir
0 / 0 / 0
Регистрация: 11.05.2011
Сообщений: 18
27.08.2011, 23:01  [ТС]     Дан одномерный массив #18
огромное спасибо дальше сам постораюсь программы писать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.08.2011, 18:55     Дан одномерный массив
Еще ссылки по теме:

Дан одномерный массив,введенный с клавиатуры C++
C++ Дан одномерный массив размерностью N
C++ Дан одномерный массив A1,., An

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

Или воспользуйтесь поиском по форуму:
Сыроежка
Заблокирован
28.08.2011, 18:55     Дан одномерный массив #19
Цитата Сообщение от Thinker Посмотреть сообщение
Ух ты... Надо же, я не и не знал... Ничего, что задачка детская...?

Добавлено через 22 минуты
При этом добавлю, что на форуме есть люди, которые не знают С++ им надо или С, а тут все легко в С переделать. Но это так, к слову.
На самом деле все программирование состоит из "детских задачек". Возьмите, например, функции библиотеки <cstring> такие, как strlen или strchr. Разве написание таких функций не "детская задачка"?! Тем не менее именно базовые функции требуют особой тщательной реализации, так как на их основе строится весь остальной код.

У вашего решения куча проблем. Во-первых, оно написано только для массивов.. Если потребуется решить туже самую задачу для списка, то ваше решение можно смело отправлять в мусорный ящик. Также в вашем решение нельзя использовать объекты других типов, кроме целочисленных. В-третьих, более грамотно на С++ использовать оператор <, а не >, так как в большинстве реализаций различных функций, алгоритмов, контейнеров и т.д. требуется наличие оператора <, а не >.

Я согласен, что для студентов нужно отрабатывать начальные навыки работы с простыми конструкциями языка С++. Но имеет смысл здесь также демонстрировать то, как можно профессионально написать код, так как на этом форуме присутствуют не только люди с начальными сведениями по языку. Им также интересно общаться.

Это мое решение - это, фактически, продолжение такой же темы на этом форуме в другой ветке. Там было предложено естественное решение с использованием пары алгоритмов: std::max_element и std::count. Методологически это естественное решение заслуживает того, чтобы быть первым рассмотрено и использовано. Но у него есть один недостаток, который вы уже знаете, состоящий в том, что последовательность элементов будет просматриваться дважды. Я уже тогда хотел предложить этот способ, который я показал здесь. Но тем не менее я сам бы остановился на первом способе с использованием std::max_element и std::count, так как он более нагляден и самовыразителен. А мною предложенный способ я стал бы использовать лишь тогда, когда размер контейнеров ощутимо большой.
Yandex
Объявления
28.08.2011, 18:55     Дан одномерный массив
Ответ Создать тему
Опции темы

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