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

программа, которая ищет в массиве чисел симметричные участки работает не совсем правильно, не могу найти ошибку - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ ссылка http://www.cyberforum.ru/cpp-beginners/thread1050412.html
Найти все трехзначные числа (с комментариями) с помощью сслыки(&)
C++ подсчитать количество слов необходимо что бы программа подсчитывала количество слов больше чем K символов, K вводится с клавиатуры, помогите пожалуйста :( http://www.cyberforum.ru/cpp-beginners/thread1050408.html
Бинарные файлы данных(задача) C++
Не могу разобраться как реализовать задачу в коде: Задан бинарный файл с целыми числами. Нужно записать в другой файл сначала отрицательные, а потом положительные элементы. Заранее спасибо!
Решение уравнения методом Ньютона. Локализация корня C++
Собственно, программа имеется, все довольно таки просто, но необходимо локализовать корень и найти именно положительный корень уравнения. Я так понял, нужно найти начальное приближение Xn и Xm....
C++ Определить структуру ModelWindow для работы с моделями экранных окон http://www.cyberforum.ru/cpp-beginners/thread1050386.html
Определить структуру ModelWindow для работы с моделями экранных окон. В качестве полей задаются: заголовок окна, координаты левого верхнего угла, размер по горизонтали, размер по вертикали, состояние...
C++ необходимо изменить программу #include <iostream> int main() { const int N = 5; using namespace std; double n; int count = N; float S = 0; std::cout << "vvedi 5 chisel\n"; подробнее

Показать сообщение отдельно
zavnical
4 / 0 / 0
Регистрация: 17.12.2013
Сообщений: 17

программа, которая ищет в массиве чисел симметричные участки работает не совсем правильно, не могу найти ошибку - C++

21.12.2013, 00:40. Просмотров 164. Ответов 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
47
48
49
50
51
52
53
54
55
56
#include "stdafx.h"
#include <iostream>
using namespace std;
void mas(int a[], int n)//функция которой заполняю массив
{int i;
    cout<<"zapolnite massiiv"<<endl;
for(i=0; i<n; i++)
cin>>a[i];
return ;
}
int _tmain(int argc, _TCHAR* argv[])
{int a[100], n, i, j, k, l, flag=1, t, maxbegin, maxend, maxlen, c,v;
char z;
do//ду вайл для повтора программы
{
    maxbegin=1;//позиция начального  i
    maxend=1;//конечного
    maxlen=1;// сиимметричный участок нужен максимальной длинны, сюда длины будут записываться
cout<<"vvedite razmernost'"<<endl;
cin>>n;//вводим размерность массива
 
mas(a, n);//заполняем массив
for(i=0; i<n-1; i++)//бежим по масссиву и проверяем его на симметричность
 for(j=n-1; j>=i; j--)
 {
     k=i;// что бы не испорить сами i и j ,будем работать с их копиями
     l=j;
     t=j;
   
     flag=1;//если флаг в конце останется равен 1 то участок симметричный и в maxbedin и maxend запишем i и j
     while(l>=k)//уменьшать будем до тех пор пока меньше или равно, потому что случаи симметричности бывают такие( 121, 1221)
     
    k++, l--;
     if(a[k]!=a[l])//если к-ый элемент не равен l-евому, то флаг сбиваем
         flag=0;
 
 if(flag==1)//если флаг остался равен 1 то проверяем какой длиины симметричный кусок массива нашего, тк в конце должен вывестись наибольший симметричный участок
  if((j-i)>maxlen)
 {   maxlen=(j-i);//если больше уже имеющейся длинны, то
     maxbegin=i;//перезаписываем позицию начала
     maxend=j;}//и позицию конца
 }
 for(i=maxbegin; i<=maxend; i++)//в конце концов по идее должны получиться "координаты" самого длиннго
 //симметричного кускаа
     cout<<a[i]<<" "; //ну и выводим на экран его
 for(i=0; i<n; i++)
 a[i]=0;
 
cout<<"prodolgit' vipolnenie?"<<endl;
cin>>z;
}
while(z=='y'||z=='Y')
;
system("pause");
 
    return 0;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru