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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
delias
4 / 4 / 0
Регистрация: 16.07.2009
Сообщений: 87
#1

Недозаполненный массив - C++

16.07.2009, 11:20. Просмотров 1270. Ответов 29
Метки нет (Все метки)

есть массив, допустим c[n], n=8

по мере выполнения задачи в массив по порядку записываются числа. записались, например, 1,2,3. Судя из теории, остальным пяти пустым ячейкам должны присвоиться значения 0.

но в моём случае это число -858993460.

не совсем понятно, в каком случае незаполненные ячейки станут нулями
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.07.2009, 11:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Недозаполненный массив (C++):

Ввести массив А. В массив В перенести все элементы массива А, стоящие правее максимального элемента, и имеющие нечетный индекс. Массив В отсортировать - C++
Добрый Вечер! Написал первую часть программы по этому заданию"Ввести массив А. В массив В перенести все элементы массива А, стоящие правее...

Массив: Как скопировать двумерный массив в другой массив? - C++
Как скопировать двумерный массив в другой массив?

Вывести на печать массив X, массив Z, массив Y, произведение элементов массива X, упорядоченный массив Y - QBasic
Вывести на печать массив X, массив Z, массив Y, произведение элементов массива X, упорядоченный массив Y. ...

Дан массив целых чисел а(12). Переписать в массив х четные, а в массив у нечетные элементы массива а - Turbo Pascal
Помогите пожалуйста решить эту задачу. Массив a выводит на печать. Я пишу a mod 2 = 0 , а он мне 41 ошибку выдает. Что делать? Вот...

Сформировать массив, который будет состоять из чисел, входящих как в массив A, так и в массив B - C (СИ)
Задание: На основе исходных массивов A и B (n и m – рабочие размеры массивов) сформировать массив C, который будет состоять из чисел,...

Дан одномерный массив A из N элементов. Переписать положительные элементы массива в массив B, а отрицательные в массив C - Pascal
Дан одномерный массив A из N элементов. Переписать положительные элементы массива в массив B, а отрицательные в массив C.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
mamedovvms
2917 / 838 / 93
Регистрация: 30.04.2009
Сообщений: 2,627
16.07.2009, 12:49 #16
Цитата Сообщение от Evg Посмотреть сообщение
int c[8] = { 0 };
тоесть вот так заполняется нулями весь массив???
0
Evg
Эксперт CАвтор FAQ
17808 / 6014 / 388
Регистрация: 30.03.2009
Сообщений: 16,525
Записей в блоге: 26
16.07.2009, 12:50 #17
Цитата Сообщение от mamedovvms Посмотреть сообщение
тоесть вот так заполняется нулями весь массив???
Да. В конце поста #12 я объяснил, как эта конструкция работает
1
RazorQ
577 / 344 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
16.07.2009, 13:12 #18
Вот так можно создать массив и обнулить
C++
1
int mas[10] = {0};
0
Evg
Эксперт CАвтор FAQ
17808 / 6014 / 388
Регистрация: 30.03.2009
Сообщений: 16,525
Записей в блоге: 26
16.07.2009, 13:18 #19
Цитата Сообщение от RazorQ Посмотреть сообщение
Вот так можно создать массив и обнулить
C++
1
int mas[10] = {0};
По-моему пора начинать конкурс боянистов
1
Paulie
Айхрень...
306 / 174 / 4
Регистрация: 02.06.2009
Сообщений: 1,078
16.07.2009, 13:20 #20
Evg, у человека, может, форум глючит... я это сообщение минут 10 пытался отправить, пока форум висел и тоже опоздал....
0
Evg
Эксперт CАвтор FAQ
17808 / 6014 / 388
Регистрация: 30.03.2009
Сообщений: 16,525
Записей в блоге: 26
16.07.2009, 13:22 #21
Цитата Сообщение от #Мессир Посмотреть сообщение
Evg, у человека, может, форум глючит... я это сообщение минут 10 пытался отправить, пока форум висел и тоже опоздал....
Я знаю. Я сбоянил первым, ты вторым, RazorQ третьим. Кто следующий
0
RazorQ
16.07.2009, 14:25
  #22

Не по теме:

Цитата Сообщение от Evg Посмотреть сообщение
Кто следующий
А можно мне ещё раз?

0
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,242
Завершенные тесты: 1
16.07.2009, 15:00 #23
int a[5]={1,2,3};
следовательно:
a: 1 2 3 0 0 0
тут размер массива меньше чем ячеек..
C++
1
2
3
4
5
int a[5];//5 ячеек=>это первая
a[0]=1;//2-ая
а[1]=2;//3-ая
a[2]=3;//4-ая
a[3]=4;//5-ая

у тебя там 6 а не пять...
0
Evg
Эксперт CАвтор FAQ
17808 / 6014 / 388
Регистрация: 30.03.2009
Сообщений: 16,525
Записей в блоге: 26
16.07.2009, 15:23 #24
@lex, ты вообще о чём?
0
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,242
Завершенные тесты: 1
16.07.2009, 15:24 #25
Evg, в цитате написал
0
Evg
Эксперт CАвтор FAQ
17808 / 6014 / 388
Регистрация: 30.03.2009
Сообщений: 16,525
Записей в блоге: 26
16.07.2009, 15:25 #26
Дальше у тебя идёт некий код (непонятно к чему), и чего там 6, а не 5 - тоженепонятно
0
delias
4 / 4 / 0
Регистрация: 16.07.2009
Сообщений: 87
16.07.2009, 16:30  [ТС] #27
да, я не правильно написал, там пять ячеек, но это не принципиально.

спасибо за совет обнуления.

вот как было сделано до того как задал вопрос:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
const int n=5, m=3,o=8;
int a[n]={1,2,3,4,5},b[m]={7,2,3},c[o],i,j,x=0;
for (i=0;i<n;i++)
{
    for (j=0;j<m;j++)
    {
        if (a[i]==b[j])
        {
            c[x]=a[i];
            x++;
        }
    }
}
for (i=0;i<o;i++)
{
        if (c[i]!=-858993460) //как изменить на ноль???!!!!
        {
            cout<<"chislo "<<c[i]<<" povtoryaetsya i zapisano v ryad "<<i<<"\n";
        }
вывод приходилось сравнивать с числом -858993460

поэтому ваш совет помог, и я исправился:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
const int n=5, m=3,o=8;
int a[n]={1,2,3,4,5},b[m]={7,2,3},c[o]={0},i,j,x=0;
for (i=0;i<n;i++)
{
    for (j=0;j<m;j++)
    {
        if (a[i]==b[j])
        {
            c[x]=a[i];
            x++;
        }
    }
}
for (i=0;i<o;i++)
{
        if (c[i]!=0) //спасибо форуму
        {
            cout<<"chislo "<<c[i]<<" povtoryaetsya i zapisano v ryad "<<i<<"\n";
        }
выходит пример что нам дали не правильный? :
int a[5]={1,2,3};
следовательно:
a: 1 2 3 0 0
потому как этот массив вначале должен быть обнулён, а если не обнулить то в ячейках 3 и 4 будет записан "мусор" а не ноль.

так?
0
Evg
Эксперт CАвтор FAQ
17808 / 6014 / 388
Регистрация: 30.03.2009
Сообщений: 16,525
Записей в блоге: 26
16.07.2009, 16:47 #28
Цитата Сообщение от delias Посмотреть сообщение
выходит пример что нам дали не правильный? :
int a[5]={1,2,3};
следовательно:
a: 1 2 3 0 0
потому как этот массив вначале должен быть обнулён, а если не обнулить то в ячейках 3 и 4 будет записан "мусор" а не ноль.

так?
Можешь внятно поставить вопрос? Идём уже на третий круг, а всё равно непонятно, что ты хочешь выяснить

C
1
int a[5]={1,2,3};
эквивалентно

C
1
2
3
4
5
6
int a[5];
a[0] = 1;
a[1] = 2;
a[2] = 3;
a[3] = 0;
a[4] = 0;
Т.е. при такой записи массива (int a[5]={1,2,3}) ВСЕ его элементы будут проинициализированы и мусора не будет
0
delias
4 / 4 / 0
Регистрация: 16.07.2009
Сообщений: 87
16.07.2009, 17:09  [ТС] #29
Т.е. при такой записи массива (int a[5]={1,2,3}) ВСЕ его элементы будут проинициализированы и мусора не будет
да, точно.
тогда вопрос следующий, почему мусор сохраняется в этом случае:
C++
1
2
3
4
5
6
7
8
9
10
const int o=5;
int c[o],i;
for (i=0;i<3;i++)
{
c[i]=i;
}
for (i=0;i<o;i++)
{
    cout<<i<<"\t"<<c[i]<<"\n";
}
потому как это не глобальный массив?

кажется начинаю понимать - потому как в этом примере в с[3] и с[4] вообще ничего не записывается, а если указывать int с[5]={1,2,3}; то в неуказанные элементы ставится 0.

Ок, вопрос снимаю. Спасибо за помощь

Хороший у вас форум - даже никто не запинал за глупые вопросы

Ещё раз спасибо
0
Evg
Эксперт CАвтор FAQ
17808 / 6014 / 388
Регистрация: 30.03.2009
Сообщений: 16,525
Записей в блоге: 26
16.07.2009, 17:15 #30
> Ок, вопрос снимаю

Вот и хорошо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.07.2009, 17:15
Привет! Вот еще темы с ответами:

Массив: Отсортировать полученный массив 3 способами: по строкам, по столбцам( возр.), 3) и весь массив - Delphi
Помогите, пожалуйста ,решить задачу. Очень нужно. Задан массив (4*6). Элементы задаются по правилу: если j&gt;3, то Aij=i+j, иначе...

Массив: Как сделать так, чтобы результирующий массив представлял собой измененный по заданным правилам первый массив? - C++ Builder
Доброй ночи форумчане, очередной нубо-вопрос не требует отлагательств имеется одномерный массив, из которого по заданным условиям...

Построить массив d из элементов, которые входят как в массив a так и в массив b - C (СИ)
Дан массив a и b состоящий из n элементов. Построить массив d из элементов, которые входят как в массив a так и в массив b. Желательно с...

Массив. Разделить на два: массив элементов с четными и массив с нечетными индексами - Pascal ABC
VII.Одномерные массивы 50. Задан массив с количеством элементов N. Сформировать два массива: в первый включить элементы исходного массива...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
16.07.2009, 17:15
Ответ Создать тему
Опции темы

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