0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 26
1

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

16.11.2011, 17:11. Показов 2967. Ответов 27
Метки нет (Все метки)

Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному. Массив должен передаваться в функцию в качестве параметра. Выполнить инициализацию массива при его объявлении.
Помогите пожалуйста!я в программировании 0...
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.11.2011, 17:11
Ответы с готовыми решениями:

Найти длину самой длинной последовательности подряд идущих элементов массива, равных нулю
Задан одномерный массив. Найти длину самой длинной последовательности подряд идущих элементов...

Найти длину самой длинной последовательности подряд идущих нулевых элементов массива
Задан числовой массив A(n). Найти длину самой длинной последовательности подряд идущих элементов...

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

Как правильно написать счетчик для нахождения самой длинной строки?
Ввести массив строк и найти в нем максимальную по длине строку. Не учитывать случай, когда таких...

27
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

Выполнение завершено
0
Заблокирован
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 );
а где она определяется в коде, этого я не увидел!
1
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

Выполнение завершено
0
Заблокирован
22.11.2011, 15:53 5
YUTD,

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

C++
1
using namespace std;
Но вы так и не ответили, где определение функции fun и что она делает.
1
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

Выполнение завершено
0
Заблокирован
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? Или вы - в неадекватном состоянии и не можете реагировать на окружающий вас мир?!
0
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 26
22.11.2011, 16:29  [ТС] 8
Я не знаю как его написать!!!
Цитата Сообщение от YUTD Посмотреть сообщение
Помогите пожалуйста!я в программировании 0...
0
Заблокирован
22.11.2011, 16:32 9
Цитата Сообщение от YUTD Посмотреть сообщение
Я не знаю как его написать!!!
А зачем вы пишите то, что даже сами не понимаете? Выкините из программы все то, что не понимаете, и оставьте в ней то, что вам самому ясно. И покажите, что у вас получилось.
0
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 26
22.11.2011, 16:39  [ТС] 10
Я пробовал писать по образцам..что-то заменил.Думал: а вдруг получится...на ошибках учатся...а если так,то останутся первые две строчки,и две последних..
0
Заблокирован
22.11.2011, 16:41 11
Цитата Сообщение от YUTD Посмотреть сообщение
Я пробовал писать по образцам..что-то заменил.Думал: а вдруг получится...на ошибках учатся...а если так,то останутся первые две строчки,и две последних..
Ну, так покажите, все эти строчки.
0
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;}
..
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;}
..
Теперь вернемся к вашему заданию. Где в нем сказано, что должен рассматриваться двумерный массив? Я там такого не увидел. Там говорится просто про массив, то есть когда не указыватся количество размерностей массива, обычно имеется в виду одномерный массив. Или я не прав?
0
4227 / 2203 / 811
Регистрация: 29.11.2010
Сообщений: 4,813
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;
}
0
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 26
29.11.2011, 17:18  [ТС] 15
Тогда ответьте мне, пожалуйста. Значит должно быть несколько одномерных массивов???
0
Заблокирован
29.11.2011, 17:29 16
Цитата Сообщение от YUTD Посмотреть сообщение
Тогда ответьте мне, пожалуйста. Значит должно быть несколько одномерных массивов???
Почему несколько? Всего один.

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

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

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

И задание говорит вам, что нужно найти максимальную последовательность рядом идущих элементов, которые равны заданному числу, например, 1. В данном примере такой подпоследовательностью будут три подряд идущие 1 в конце массива.
1
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 };
0
Заблокирован
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 );
}
Попробуйте это откомпилировать и выполнить, и, если все получится, пойдем дальше.
1
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 26
29.11.2011, 18:10  [ТС] 19
получилось!!!

Добавлено через 2 минуты
ой
0
Эксперт С++
4264 / 2238 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
29.11.2011, 18:21 20
Цитата Сообщение от YUTD Посмотреть сообщение
Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному.
Вам еще нужна эта функция?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.11.2011, 18:21
Помогаю со студенческими работами здесь

Определить длину самой большой последовательности подряд идущих согласных
В строке записаны несколько предложений . Каждое предложение заканчивается точкой, вопросительным...

Определить длину самой длинной последовательности подряд идущих элементов массива, равных нулю
Помогите найти ошибку в коде. При вводе значений элементов массива, ну например (012300120001) - 12...

Определить длину самой длинной последовательности подряд идущих элементов массива, равных нулю
надо сделать 2 проги, а я в фортране вообще не шарю) 2)Заданы число N и целочисленный массив...

Найти длину самой длинной последовательности подряд идущих элементов массива
Помогите написать программу:Задан целочисленный массив A(N). Найти длину самой длинной...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru