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

Найти номер элемента из массива А, с которого массив В начинается как подпоследовательность - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как перегрузить поле с типом Char http://www.cyberforum.ru/cpp-beginners/thread673125.html
нужна перегрузка сложения в классе int o; char *gr; вот если интовское поле было то пишу Text Text::operator+(Text &str3)
C++ Перегрузить оператор Привет всем! Помогите решить задачку. Перегрузить оператор для объекта содержащего два закрытых элемента так, чтоб элемент одного объекта сдвигался вправо на количество байтов равное числу находящемуся в соответствующем поле другого объекта. Не использовать дружеские функции. http://www.cyberforum.ru/cpp-beginners/thread673124.html
for и while C++
Объясните плз, когда следует использовать for, а когда while. Пока я не могу сообразить в каких случаях выгоднее использовать while. Ведь можно спокойно использовать вместо него for(;условие; )?
определить тип выражений: C++
пустьchar c; short s; int o; unsigned u; signed char sc; float f; double d; long ing; unsigned short us; long double ld; c-s/i u*3-3.0*u-i u-us*i (sc+d)* ld (5 * lng - 'a')*(s+u/2) (f+3)/(2.5f-s*3.14)
C++ Не получается отладить программу: консольное окно не ставится на "паузу" http://www.cyberforum.ru/cpp-beginners/thread673095.html
консольное окно не ставится на паузу, хоть все вроде бы правильно прописал ... я в с++ новичек) #include <iostream> #include <limits.h> #include <float.h> using namespace std; int main() { unsigned short i=65535;
C++ Подсчитать в одномерном массиве количество нулевых значений Я находил в шапке форума аналогичные задачи, но они не работают....пожалуйста помогите Дан массив А={а1, а2...а20} Нужно 1)Подсчитать в одномерном массиве кол-во нулевых значений 2)Кол-во нечетных элементов 3)Сумму положительных элементов подробнее

Показать сообщение отдельно
Micki
227 / 3 / 0
Регистрация: 01.04.2010
Сообщений: 145
17.10.2012, 13:40  [ТС]     Найти номер элемента из массива А, с которого массив В начинается как подпоследовательность
Цитата Сообщение от yuron_477 Посмотреть сообщение
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
#include <iostream>
#include <algorithm>
#include <array>
#include <iterator>
using namespace std;
 
int main()
{
    const int sizeOfa = 8;
    const int sizeOfb = 3;
    array<int, sizeOfa> a = {1,3,4,5,35,23,4,0};
    array<int, sizeOfb> b = {5,35,23};
    auto pos = find(a.begin(), a.end(), b[0]);
    if (pos != a.end())
    {
        if (equal(pos, pos+sizeOfb, b.begin()))
            cout<<"Yes: "<<distance(a.begin(), pos)<<endl;
        else
            cout<<"No\n";
    }
    else
        cout<<"No\n";
    system("pause");
    return 0;
}
спсибо большое!...а можно эту задачу более тривиальным языком решить?
например как эту программу, которая должна находить первое вхождение второго массива в первый, т.е. дан массив А: (1 3 5 7 3 5 20 9)
и массив В: ( 4 2 5)
в итоге программа должна вывести в ответе "i=2"
(кстати этот код почему-то не работает, не подскажиет почему?)


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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int main()
{
    int const N=8;
    int a[N];
    for (int i=0; i<N; i++)
    cin>>a[i];
    int const M=3;
    int b[M];
    for (int j=0; j<M; j++)
    cin>>b[j];
    int k=0;
        for (int i=0; i<N; i++)
{
        for (int j=0; j<M; j++)
        if (a[i]=b[j])
        { k=i+1; break;
}
 
 if(k)
  break;
}
if (k!=0)
    cout<<k-1<<endl;
else
    cout<<" net vhozdeniy"<<endl;
 
system ("pause");   
return 0;
}
 
Текущее время: 11:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru