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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
samarcs
0 / 0 / 0
Регистрация: 01.08.2012
Сообщений: 82
#1

Циклы, массивы, поиск нулевого элемента - C++

28.12.2012, 13:15. Просмотров 1048. Ответов 3
Метки нет (Все метки)

6. Дано натуральное число n, целые числа a0,a1,....,an .
Сформировать новый массив, исключив из заданного числа, кратные числу 3,
которые расположены после последнего нулевого элемента.
Если нулевых элементов нет, то новый массив не создавать, но выдать сообщение об этом.Код C++
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
#pragma hdrstop
#pragma argsused
 
#include <tchar.h>
#include <stdio.h>
#include <iostream.h>
#include <math.h>
/*
6.  Дано натуральное число n, целые числа a0,a1,....,an .
 Сформировать новый массив, исключив из заданного числа, кратные числу 3,
 которые расположены после последнего нулевого элемента.
 Если нулевых элементов нет, то новый массив не создавать, но выдать сообщение об этом.
  */
int _tmain(int argc, _TCHAR* argv[])
{
//Описание данных
    int a[10],i,j,x[10];
//Ввод массива
    cout<<"Enter a:"<<endl;
    for (i=0; i < 10; i++)
        cin>>a[i];
//Формирование нового массива из чисел не кратных 3.
    j=0;
    for(i=0; i<10; i++)
      {
         if(a[i]>0 && a[i]%3!=0)
            x[j++]=a[i];
 
      }
    return 0;
}

все до чего догадался( подскажите, " которые расположены после последнего нулевого элемента." особенно данное задание,
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2012, 13:15     Циклы, массивы, поиск нулевого элемента
Посмотрите здесь:

Количество строк, не содержащих не одного нулевого элемента C++
C++ Количество строк, не содержащих ни одного нулевого элемента
Массивы, вложенные циклы и поиск максимального и минимального значения C++
Массив: Количество строк, не содержащих ни одного нулевого элемента C++
Строки string (избавиться от нулевого элемента) C++
C++ Запись в одномерный массив не с нулевого элемента
Не заполняется динамический массив, кроме нулевого элемента C++
C++ Массивы: определить минимальный элемент и суму элементов до первого нулевого элемента
C++ В массиве найти индекс первого нулевого элемента
Определить количество строк, не содержащих ни одного нулевого элемента C++
C++ Определить наличие в массиве нулевого элемента
C++ В массиве из 15 чисел найти индекс первого нулевого элемента

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ViktorKozlov
133 / 125 / 2
Регистрация: 13.12.2012
Сообщений: 293
28.12.2012, 15:23     Циклы, массивы, поиск нулевого элемента #2
Нужно найти номер последнего нулевого элемента, ну а потом цикл от следующего после него элемента до конца, и в каждой итерации проверять на кратность 3
samarcs
0 / 0 / 0
Регистрация: 01.08.2012
Сообщений: 82
28.12.2012, 17:14  [ТС]     Циклы, массивы, поиск нулевого элемента #3
Цитата Сообщение от ViktorKozlov Посмотреть сообщение
Нужно найти номер последнего нулевого элемента, ну а потом цикл от следующего после него элемента до конца, и в каждой итерации проверять на кратность 3
Спасибо за подсказку, но меня волнует другое) как найти 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
int _tmain(int argc, _TCHAR* argv[])
{
//Описание данных
    int a[255],i,j,x[255],k,nl,p,n;
//Ввод кол-ва элементов массива
    cout<<"Vvedite col-vo elementov massiva: "<<endl;
    cin>>n;
//Ввод массива
    cout<<"Enter massiv a:"<<endl;
    for (i=0; i < n; i++)
        cin>>a[i];
//Поиск нулевого элемента
    for(i=n-1; i>=0; i--)
        if(a[i]==0)
        {
          p=i;
        }
    for(i=0; i<n; i++)
    {
        cout<<p<<" ";
    }
    cout<<endl;
    system("pause");
    return 0;
}
что в алгоритме поиска нулевого не правильно?))))
P.S. К сожалению у нас в университете только практика по С++, лекций нет((( посоветуйте какой-нибудь учебник по с++ чтобы очень понятно было)
Learx
1034 / 841 / 85
Регистрация: 31.03.2010
Сообщений: 2,465
28.12.2012, 17:26     Циклы, массивы, поиск нулевого элемента #4
1. Проинициализируйте p минус единицей.
2. Поиск работает верно, но вы двигаетесь с конца, находите нулевой и двигаетесь дальше. В результате вы запоминаете индекс первого нуля. Добавьте в if break.

3. После поиска нулевого p=-1 если нулевых нет или указывает на индекс последнего.
Запускаем новый цикл для поиска кратных, только инициализируем переменную-счетчик значением p+1

Добавлено через 25 секунд
Учебник
Yandex
Объявления
28.12.2012, 17:26     Циклы, массивы, поиск нулевого элемента
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru