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

Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.79
YUTD
 Аватар для YUTD
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 26
16.11.2011, 17:11     Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному #1
Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному. Массив должен передаваться в функцию в качестве параметра. Выполнить инициализацию массива при его объявлении.
Помогите пожалуйста!я в программировании 0...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2011, 17:11     Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному
Посмотрите здесь:

Определить длину самой большой последовательности подряд идущих согласных C++
C++ Программа для нахождения к-ой цифры в ряду подряд идущих натуральных чисел.
C++ Написать функцию нахождения суммы элементов двумерного массива
C++ Определить длину самой длинной подстроки из подряд стоящих букв «е»
C++ Создать массив A(n) и найти длину самойдлиной последовательности подряд идущих элементов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YUTD
 Аватар для YUTD
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 26
22.11.2011, 15:10  [ТС]     Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному #2
Я написал..но по-моему это чушь полная....
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream.h>
#include <stdio.h>
float fun(int[][8],int );   
int main()
{int a[5][8]={1,3,5, 0,0,5,3,-1,
              0,3,2, 4,1,3,1, 9,
             -1,0,0,10,3,1,1, 4,
              2,4,5, 1,1,2,2, 8,
              5,4,7, 6,4,5,5, 2};               
float maxkol;
maxkol=fun(a,5);
cout<<maxkol;
cout<<fun(a,5);
return 0;}
float maxkol(int a[][8],int n);
{int i,j;
float kol,maxkol;
for(a[i][j]=0;i=0,i<n,i++)
for(j=0,j<8,j++)
maxkol=a[i][j];
return maxkol;
}
Компилятор: Default compiler
Выполнение g++.exe...
g++.exe "I:\Zadanie1.cpp" -o "I:\Zadanie1.exe" -I"D:\Программы\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"D:\Программы\Dev-Cpp\include\c++\3.4.2\backward" -I"D:\Программы\Dev-Cpp\include\c++\3.4.2\mingw32" -I"D:\Программы\Dev-Cpp\include\c++\3.4.2" -I"D:\Программы\Dev-Cpp\include" -L"D:\Программы\Dev-Cpp\lib"
In file included from D:/Программы/Dev-Cpp/include/c++/3.4.2/backward/iostream.h:31,
from I:\Zadanie1.cpp:1:

D:/Программы/Dev-Cpp/include/c++/3.4.2/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.
I:\Zadanie1.cpp:16: error: expected unqualified-id before '{' token
I:\Zadanie1.cpp:16: error: expected `,' or `;' before '{' token

Выполнение завершено
Сыроежка
Заблокирован
22.11.2011, 15:30     Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному #3
YUTD,

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

То есть вместо

C++
1
2
#include <iostream.h>
#include <stdio.h>
вы должны писать

C++
1
2
#include <iostream>
#include <cstdio>
Исправьте это.

Далее у вас идет объявление функции

C++
1
float fun(int[][8],int );
а где она определяется в коде, этого я не увидел!
YUTD
 Аватар для YUTD
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 26
22.11.2011, 15:45  [ТС]     Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному #4
Моя так называемая программа вообще имеет хоть какую-нибудь связь с моим заданием? Мне кажется моя программа вообще неправильная...

Добавлено через 4 минуты
Первые две строчки исправил. Теперь 5 ошибок.
Компилятор: Default compiler
Выполнение g++.exe...
g++.exe "I:\Zadanie1.cpp" -o "I:\Zadanie1.exe" -I"D:\Программы\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"D:\Программы\Dev-Cpp\include\c++\3.4.2\backward" -I"D:\Программы\Dev-Cpp\include\c++\3.4.2\mingw32" -I"D:\Программы\Dev-Cpp\include\c++\3.4.2" -I"D:\Программы\Dev-Cpp\include" -L"D:\Программы\Dev-Cpp\lib"
I:\Zadanie1.cpp: In function `int main()':
I:\Zadanie1.cpp:12: error: `cout' undeclared (first use this function)
I:\Zadanie1.cpp:12: error: (Each undeclared identifier is reported only once for each function it appears in.)

I:\Zadanie1.cpp: At global scope:
I:\Zadanie1.cpp:16: error: expected unqualified-id before '{' token
I:\Zadanie1.cpp:16: error: expected `,' or `;' before '{' token

Выполнение завершено
Сыроежка
Заблокирован
22.11.2011, 15:53     Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному #5
YUTD,

Теперь для простоты после опимания заголовочных файлов вставьте директиву

C++
1
using namespace std;
Но вы так и не ответили, где определение функции fun и что она делает.
YUTD
 Аватар для YUTD
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 26
22.11.2011, 16:03  [ТС]     Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному #6
В самом первом сообщении описано задание:
Цитата Сообщение от YUTD Посмотреть сообщение
Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному. Массив должен передаваться в функцию в качестве параметра. Выполнить инициализацию массива при его объявлении.
Добавлено через 2 минуты
теперь две ошибочки:
Компилятор: Default compiler
Выполнение g++.exe...
g++.exe "I:\Zadanie1.cpp" -o "I:\Zadanie1.exe" -I"D:\Программы\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"D:\Программы\Dev-Cpp\include\c++\3.4.2\backward" -I"D:\Программы\Dev-Cpp\include\c++\3.4.2\mingw32" -I"D:\Программы\Dev-Cpp\include\c++\3.4.2" -I"D:\Программы\Dev-Cpp\include" -L"D:\Программы\Dev-Cpp\lib"
I:\Zadanie1.cpp:17: error: expected unqualified-id before '{' token
I:\Zadanie1.cpp:17: error: expected `,' or `;' before '{' token

Выполнение завершено
Сыроежка
Заблокирован
22.11.2011, 16:21     Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному #7
Цитата Сообщение от YUTD Посмотреть сообщение
В самом первом сообщении описано задание:


Добавлено через 2 минуты
теперь две ошибочки:
Компилятор: Default compiler
Выполнение g++.exe...
g++.exe "I:\Zadanie1.cpp" -o "I:\Zadanie1.exe" -I"D:\Программы\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"D:\Программы\Dev-Cpp\include\c++\3.4.2\backward" -I"D:\Программы\Dev-Cpp\include\c++\3.4.2\mingw32" -I"D:\Программы\Dev-Cpp\include\c++\3.4.2" -I"D:\Программы\Dev-Cpp\include" -L"D:\Программы\Dev-Cpp\lib"
I:\Zadanie1.cpp:17: error: expected unqualified-id before '{' token
I:\Zadanie1.cpp:17: error: expected `,' or `;' before '{' token

Выполнение завершено
Меня не интересует, что написано в самом первом сообщении. Вы писали код? Я вас спрашиваю, где определение функции fun? Или вы - в неадекватном состоянии и не можете реагировать на окружающий вас мир?!
YUTD
 Аватар для YUTD
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 26
22.11.2011, 16:29  [ТС]     Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному #8
Я не знаю как его написать!!!
Цитата Сообщение от YUTD Посмотреть сообщение
Помогите пожалуйста!я в программировании 0...
Сыроежка
Заблокирован
22.11.2011, 16:32     Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному #9
Цитата Сообщение от YUTD Посмотреть сообщение
Я не знаю как его написать!!!
А зачем вы пишите то, что даже сами не понимаете? Выкините из программы все то, что не понимаете, и оставьте в ней то, что вам самому ясно. И покажите, что у вас получилось.
YUTD
 Аватар для YUTD
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 26
22.11.2011, 16:39  [ТС]     Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному #10
Я пробовал писать по образцам..что-то заменил.Думал: а вдруг получится...на ошибках учатся...а если так,то останутся первые две строчки,и две последних..
Сыроежка
Заблокирован
22.11.2011, 16:41     Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному #11
Цитата Сообщение от YUTD Посмотреть сообщение
Я пробовал писать по образцам..что-то заменил.Думал: а вдруг получится...на ошибках учатся...а если так,то останутся первые две строчки,и две последних..
Ну, так покажите, все эти строчки.
YUTD
 Аватар для YUTD
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 26
22.11.2011, 17:01  [ТС]     Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному #12
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <cstdio>
..
int main()
{int a[5][8]={1,3,5, 0,0,5,3,-1,
              0,3,2, 4,1,3,1, 9,
             -1,0,0,10,3,1,1, 4,
              2,4,5, 1,1,2,2, 8,
              5,4,7, 6,4,5,5, 2}; 
..
return 0;}
..
Сыроежка
Заблокирован
22.11.2011, 17:20     Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному #13
Цитата Сообщение от YUTD Посмотреть сообщение
#include <iostream>
#include <cstdio>
..
int main()
{int a[5][8]={1,3,5, 0,0,5,3,-1,
0,3,2, 4,1,3,1, 9,
-1,0,0,10,3,1,1, 4,
2,4,5, 1,1,2,2, 8,
5,4,7, 6,4,5,5, 2};
..
return 0;}
..
Теперь вернемся к вашему заданию. Где в нем сказано, что должен рассматриваться двумерный массив? Я там такого не увидел. Там говорится просто про массив, то есть когда не указыватся количество размерностей массива, обычно имеется в виду одномерный массив. Или я не прав?
lemegeton
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
23.11.2011, 11:56     Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному #14
Не подглядывать.
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
#include <iostream>
#include <ctime>
#include <cstdlib>
 
int maxChain(int *array, int size, int value) {
  int maxStart = -1;
  int maxLength = 0;
  
  for (int i = 0; i < size; ++i) {
    if (array[i] == value) {
      int thisLength = 0;
      int thisStart = i;
      while (i < size && array[i] == value) {
        ++thisLength;
        ++i;
      }
      if (thisLength > maxLength) {
        maxStart = thisStart;
        maxLength = thisLength;
      }
    }
  }
  
  return maxStart;
}
 
int main(int argc, char *argv[]) {
  srand(time(NULL));
  int size = 15;
  int *array = new int[size];
 
  for (int i = 0; i < size; ++i)
    std::cout << (array[i] = rand() % 4) << " ";
  std::cout << std::endl;
 
  int value = rand() % 10;
  value = array[size - 1];
  int start = maxChain(array, size, value);
  
  if (start > -1) {
    std::cout << "Max chain of " << value << " found at " << start << std::endl;
  } else {
    std::cout << "Value of " << value << " not found." << std::endl;;
  }
  
 
  delete array;
  return 0;
}
YUTD
 Аватар для YUTD
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 26
29.11.2011, 17:18  [ТС]     Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному #15
Тогда ответьте мне, пожалуйста. Значит должно быть несколько одномерных массивов???
Сыроежка
Заблокирован
29.11.2011, 17:29     Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному #16
Цитата Сообщение от YUTD Посмотреть сообщение
Тогда ответьте мне, пожалуйста. Значит должно быть несколько одномерных массивов???
Почему несколько? Всего один.

Я понял, чего вы не понимаете в своем задании. Когда в задании говорится о последовательности, то имеется в виду подпоследовательность в заданном одномерном массиве.

Например, пусть имеется массив

int a[] = { 1, 1. 4. 8. 1, 4, 7, 1, 1, 1, 4 };

И задание говорит вам, что нужно найти максимальную последовательность рядом идущих элементов, которые равны заданному числу, например, 1. В данном примере такой подпоследовательностью будут три подряд идущие 1 в конце массива.
YUTD
 Аватар для YUTD
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 26
29.11.2011, 17:44  [ТС]     Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному #17
Как я поняла, начало программы будет выглядеть так:
#include <iostream.h>
#include <stdio.h>
int main ()
int a[] = { 9, 3, 3, 3, 1, 4, 7, 2, 1, 1, 4 };
Сыроежка
Заблокирован
29.11.2011, 17:58     Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному #18
Цитата Сообщение от YUTD Посмотреть сообщение
Как я поняла, начало программы будет выглядеть так:
#include <iostream.h>
#include <stdio.h>
int main ()
int a[] = { 9, 3, 3, 3, 1, 4, 7, 2, 1, 1, 4 };
Нет, не так.
В С++ стандартные заголовки указываются без расширения '.h". К тому же соверешнно нет необходимости включать два этих заголовка, так как по существу они выполняют одни и те же задачи, но разными способами. Кроме того вы забыли указать фигурные скобки для тела функции main. Поэтому начало программы, если она пишется на С++, должно выглядеть так

C++
1
2
3
4
5
6
7
8
9
10
#include   <iostream>
 
 
int main()
{
 
   int a[] = { 9, 3, 3, 3, 1, 4, 7, 2, 1, 1, 4 };
 
   return ( 0 );
}

Пока добавим сюда функцию вывода массива на консоль.

C++
1
2
3
4
5
void display( int a[], int n )
{
   for ( int i = 0; i < n; i++ ) std::cout << a[i] << ' ';
   std::cout << std::endl;
}

Объединим, что мы написали

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include   <iostream>
 
 
void display( int a[], int n )
{
   for ( int i = 0; i < n; i++ ) std::cout << a[i] << ' ';
   std::cout << std::endl;
}
 
int main()
{
 
   int a[] = { 9, 3, 3, 3, 1, 4, 7, 2, 1, 1, 4 };
 
   display( a, sizeof( a ) / sizeof( *a ) );
 
   return ( 0 );
}
Попробуйте это откомпилировать и выполнить, и, если все получится, пойдем дальше.
YUTD
 Аватар для YUTD
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 26
29.11.2011, 18:10  [ТС]     Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному #19
получилось!!!

Добавлено через 2 минуты
ой
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2011, 18:21     Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному
Еще ссылки по теме:

Функция поиска самой длинной цепочки элементов массива C++
C++ Функция нахождения самой длинной неубывающей подпоследовательности
Найти длину самой длинной последовательности подряд идущих нулевых элементов массива C++

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

Или воспользуйтесь поиском по форуму:
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
29.11.2011, 18:21     Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному #20
Цитата Сообщение от YUTD Посмотреть сообщение
Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному.
Вам еще нужна эта функция?
Yandex
Объявления
29.11.2011, 18:21     Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному
Ответ Создать тему
Опции темы

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