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

составить один массив с++ - C++

Восстановить пароль Регистрация
 
Serpantin
0 / 0 / 0
Регистрация: 14.01.2011
Сообщений: 4
14.01.2011, 22:57     составить один массив с++ #1
Дан массив С1, С2 .....С24. В массиве есть два элемента равные 0. Заменить все элементы стоящие между ними, на единицы. Кто нибудь может помочь?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2011, 22:57     составить один массив с++
Посмотрите здесь:

C++ Заданы два одномерных массива действительных чисел различных размеров. Объединить их в один массив, включив второй массив между k-м и (k+1)-м элемента
Массив: Составить массив из двух исходных по заданному принципу заполнения C++
C++ Дан целочисленный массив размером N. Преобразовать массив, увеличив длину каждой серии на один элемент
C++ Сформировать один массив из другого
Двумерный массив за один цикл C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
14.01.2011, 23:12     составить один массив с++ #2
Цитата Сообщение от Serpantin Посмотреть сообщение
В массиве есть два элемента равные 0
Ну если Вы это гарантируете, то так:
C++
1
2
3
4
5
6
7
8
9
int i1=-1, i2=-1, i;
for(i=0; i<24 && i1==-1; i++)
    if(C[i]==0)
        i1=i;
for(i=23; i>=0 && i2==-1; i--)
    if(C[i]==0)
       i2=i;
for(i=i1+1; i<i2; i++)
     C[i]=1;
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
14.01.2011, 23:14     составить один массив с++ #3
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
#include <iostream>
using namespace std;
 
int main(){
 
 const int size = 10 ; 
 int m[size] = {5, 0, 2, 10, 8, 7, 6, 0, 9, 10};
 int i , j , beg(-1), end(-1);
 
 for( i = 0 ; i < size ; i++ )
      if( m[i] == 0 )
         for( j = i + 1 ; j < size ; j++ )
        if(m[j] == 0){
              beg = i + 1 ;
              end = j ;
          break ;
        }
 
 
 if(beg == -1 || end == -1)return 0;
 
 for( i = beg ; i < end ; i++ )m[i] = 1;
 
 for( i = 0 ; i < size ; i++ )cout<<m[i]<<' ';
 cout<<endl;
 
 
 system("pause");
 return 0;
}
Serpantin
0 / 0 / 0
Регистрация: 14.01.2011
Сообщений: 4
15.01.2011, 00:02  [ТС]     составить один массив с++ #4
спасибо большое! все работает
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
15.01.2011, 09:05     составить один массив с++ #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
 
int main()
{
    std::vector<int> vec((std::istream_iterator<int>(std::cin)), std::istream_iterator<int>());
    std::vector<int>::iterator iter=std::find(vec.begin(), vec.end(), 0);
    std::vector<int>::iterator enditer=std::find(iter+1, vec.end(), 0);
    std::for_each(iter+1, enditer, [](int& one) {one=1;});
    std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(std::cout, " "));
    system("pause");
    return 0;
}
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
15.01.2011, 09:27     составить один массив с++ #6
ForEveR, ошибку выдаёт
CodeBlocks\Projects\main.cpp|11|error: expected primary-expression before '[' token|
вот на этой конструкции
Цитата Сообщение от ForEveR Посмотреть сообщение
[](int& one) {one=1;}
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
15.01.2011, 09:30     составить один массив с++ #7
igorrr37, видимо, версия MinGW, которая у вас в CodeBlocks, ещё не поддерживает часть нового стандарта, которую поддерживают, например, последняя версия GCC и мелкософтовского компилятора, в частности, лямбда-выражения, на котором у вас и выскочила ошибка.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
15.01.2011, 16:35     составить один массив с++ #8
Вот у меня тоже Code::Blokcs версии 10.05 , я в настройках включил флаг -std=c++0x и уже даже заполняет векотор так
C++
1
std::vector<int> a = {1, 2, 3, 4, 5};
а вот лямбда функции не хочет читать.

Добавлено через 2 минуты
Установочный файл клмпилятора(MinGW) выглядит так tdm-mingw-1.908.0-4.4.1-2.exe
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
16.01.2011, 05:37     составить один массив с++ #9
Цитата Сообщение от asics Посмотреть сообщение
Установочный файл клмпилятора(MinGW) выглядит так tdm-mingw-1.908.0-4.4.1-2.exe
спасибо!
скачал tdm-gcc-4.5.1 20.6 MB http://tdm-gcc.tdragon.net/download, переустановил кодеблокс и установил этот пакет в папку ...\CodeBlocks\MinGW, лямбда функции стали работать)))
Serpantin
0 / 0 / 0
Регистрация: 14.01.2011
Сообщений: 4
17.01.2011, 17:58  [ТС]     составить один массив с++ #10
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 "stdafx.h"
#include <conio.h>
#include <iostream>
using namespace std;
#define SIZE 24
int tmain()
    {
        double a[SIZE];
        int flag = 0;
        cout<<"введите " <<SIZE<< " чисел"<< endl;
        for(int i=0;i<SIZE;i++)
            cin>>a[i];
for(i=0;i<SIZE;i++)
{
    if(a[i]=0);
    {
        flag^=1;
        continue;
    }
    if (flag && a[i]>=0) a[i]=0;
}
for(int i=0;i<SIZE;i++)
cout<<a[i]<<" ";
_getch();
    }
Постарался сделать сам...может объяснит кто в чем ошибки. В С++ недавно, трудно дается((
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
17.01.2011, 18:00     составить один массив с++ #11
Serpantin, разве вам компилятор не обясняет?
Serpantin
0 / 0 / 0
Регистрация: 14.01.2011
Сообщений: 4
17.01.2011, 18:04  [ТС]     составить один массив с++ #12
неописанный идентификатор...попросил бы ткнуть пальцем что исправить если можно
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.01.2011, 18:07     составить один массив с++
Еще ссылки по теме:

Один массив по основанию другого C++
Составить из двух одномерных массивов один двумерный C++
C++ Дан двухмерный целочисленный массив . Составить одномерный массив В номеров строк этого массива

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

Или воспользуйтесь поиском по форуму:
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
17.01.2011, 18:07     составить один массив с++ #13
Цитата Сообщение от Serpantin Посмотреть сообщение
for(i=0;i<SIZE;i++)
Огласить переменую i !!!
Yandex
Объявления
17.01.2011, 18:07     составить один массив с++
Ответ Создать тему
Опции темы

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