Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 11.05.2011
Сообщений: 18
1

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

27.08.2011, 14:37. Показов 2774. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дан одномерный массив.Определить количество максимальных элементов в массиве.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.08.2011, 14:37
Ответы с готовыми решениями:

Дан двумерный массив 3х3. Получить одномерный массив из из отрицательных элементов матрицы.
Пожалуйста, помогите решить простым методом задачку, просто не могу понять смысл ее выполнения....

Дан двумерный массив размерностью 4*5. Сформировать одномерный массив
Дан двумерный массив размерностью 4*5, заполненный целыми числами с клавиатуры. Сформировать...

Дан двумерный массив. Сформировать одномерный массив из элементов заданного массива, расположенных под побочной диагональю.
Дан двумерный массив размером n x n. Сформировать: Одномерный массив из элементов заданного...

Дан двумерный массив размерностью Н. сформировать одномерный массив из элементов заданного массива расположенных над главной диагональю.
помогите решить=)Дан двумерный массив размерностью Н. сформировать одномерный массив из элементов...

18
Android Programmer
141 / 142 / 10
Регистрация: 08.12.2010
Сообщений: 421
27.08.2011, 14:41 2
ну и в чем проблема?
0
0 / 0 / 0
Регистрация: 11.05.2011
Сообщений: 18
27.08.2011, 14:44  [ТС] 3
единственная проблема в том что ужасно понимаю программирование=( и неумею проги писать только начал учиться
0
Эксперт С++
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
27.08.2011, 14:48 4
Цитата Сообщение от vladimmir Посмотреть сообщение
единственная проблема в том что ужасно понимаю программирование=( и неумею проги писать только начал учиться
И так что вам нужно, вопрос какой-то или программа? Если программа, то как вы будете сами учиться?
0
0 / 0 / 0
Регистрация: 11.05.2011
Сообщений: 18
27.08.2011, 14:50  [ТС] 5
я учусь по программе по примерам потом стараюсь сам написать её или что то аналогичное но несмотря на старые
0
Эксперт С++
4267 / 2241 / 203
Регистрация: 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;
}
1
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
27.08.2011, 14:58 7
Цитата Сообщение от vladimmir Посмотреть сообщение
стараюсь сам написать
серьезно? Ну тогда и пришлите нам ваш код, даже если он неправильный, мы вам поможем. Но за вас писать тут никто не будет, по крайней мере бесплатно. Заказывайте на фрилансе. Там очень любят такие заказы "Напишите мне программу! Дан одномерный массив.Определить количество максимальных элементов в массиве. Любые деньги!"

Не по теме:

don't feed troll's



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

Не по теме:

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

1
Эксперт С++
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
27.08.2011, 15:04 12
Цитата Сообщение от soon Посмотреть сообщение
Ну, я возможно погорячился =)
Да нет, вы правы, ваше сообщение правильное. Иногда сливают сюда задачи, а мы их решаем зачем-то, отбираем хлеб у репетиторов
1
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
27.08.2011, 15:05 13
Цитата Сообщение от Thinker Посмотреть сообщение
отбираем хлеб у репетиторов
золотые слова!
0
Заблокирован
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;
}
Так как я набирал код, как говорится, "на коленках", то может быть в нем присутствуют какие-нибудь опечатки, которые легко исправить.
1
Эксперт С++
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
27.08.2011, 22:20 15
Цитата Сообщение от Сыроежка Посмотреть сообщение
Покажу, как такой код пишут профессиональные программисты на С++....
Ух ты... Надо же, я не и не знал... Ничего, что задачка детская...?

Добавлено через 22 минуты
При этом добавлю, что на форуме есть люди, которые не знают С++ им надо или С, а тут все легко в С переделать. Но это так, к слову.
0
0 / 0 / 0
Регистрация: 11.05.2011
Сообщений: 18
27.08.2011, 22:30  [ТС] 16
о перелайте мне на С =) а то я часть только переделал вот остальное пока что думаю
0
Эксперт С++
4267 / 2241 / 203
Регистрация: 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;
}
1
0 / 0 / 0
Регистрация: 11.05.2011
Сообщений: 18
27.08.2011, 23:01  [ТС] 18
огромное спасибо дальше сам постораюсь программы писать
0
Заблокирован
28.08.2011, 18:55 19
Цитата Сообщение от Thinker Посмотреть сообщение
Ух ты... Надо же, я не и не знал... Ничего, что задачка детская...?

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

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

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

Это мое решение - это, фактически, продолжение такой же темы на этом форуме в другой ветке. Там было предложено естественное решение с использованием пары алгоритмов: std::max_element и std::count. Методологически это естественное решение заслуживает того, чтобы быть первым рассмотрено и использовано. Но у него есть один недостаток, который вы уже знаете, состоящий в том, что последовательность элементов будет просматриваться дважды. Я уже тогда хотел предложить этот способ, который я показал здесь. Но тем не менее я сам бы остановился на первом способе с использованием std::max_element и std::count, так как он более нагляден и самовыразителен. А мною предложенный способ я стал бы использовать лишь тогда, когда размер контейнеров ощутимо большой.
0
28.08.2011, 18:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.08.2011, 18:55
Помогаю со студенческими работами здесь

Дан одномерный массив A1,., An
Дана последовательность A1,..., An. Поменять местами: Наибольший член с членом с номером m;...

Дан одномерный массив
Помогите пожалуйста вот с этой программой 1.Дан одномерный массив, состоящий из N вещественных...

Дан одномерный массив
Дан одномерный массив, состоящий из N целочисленных элементов. Найти минимальный положительный...

Дан одномерный целочисленный массив
Дан одномерный целочисленный массив порядка n: Необходимо найти сумму нечётных элементов массива...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru