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

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

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

почему не получается правильно вывести полученный массив на экран - C++

13.12.2012, 23:12. Просмотров 518. Ответов 16
Метки нет (Все метки)

Скажите,в чем я тормознул.

Код
#include <iostream>
using namespace std;

int main()
{
    int i,n=5;
    int k,j;
    int a[5];
    cout<<"Array=";
    for (i=0;i<n;i++)
    cin>>a[i];
    cout<<"K=";
    cin>>k;
    for(int i=0;i<n;i++)
    if(k==a[i])
    {
    for(int j=i;j<n-1;j++)
    a[j]=a[j+1];
    a[n-1]=0;
    break;
    }
    cout<<"New array="<<a[i]<<endl;
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2012, 23:12     почему не получается правильно вывести полученный массив на экран
Посмотрите здесь:

Я хочу вывести 2 массива при чем чтобы один отличался от другого на +1. Почему не получается? C++
что у меня не правильно? (не получается вывести 2 массива) C++
C++ с++ не получается вывести на экран MAX2 и MAX3
C++ Все положительные элементы замените минимальными. Выведите на экран исходный и полученный массив
Поделить вектор х на 10, вывести полученный массив на экран. Найти произведение отрицательных элементов C++
Заменяемые значения вывести в массив В. Вывести на экран полученную матрицу и массив B. C++
а как вывести на экран? через printf не получается C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
13.12.2012, 23:14     почему не получается правильно вывести полученный массив на экран #2
Вам нужно вывести весь массив?
Amator
1036 / 368 / 9
Регистрация: 11.11.2008
Сообщений: 3,166
Завершенные тесты: 2
13.12.2012, 23:16     почему не получается правильно вывести полученный массив на экран #3
Если я не ошибаюсь(отформатируйте пожалуйста код, трудно читать), то вывод массива нужно тоже циклом сделать.
C++
1
2
3
4
for(i=0; i<n; i++)
{
    cout << a[i];
}
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
13.12.2012, 23:24     почему не получается правильно вывести полученный массив на экран #4
Цитата Сообщение от Bulding Посмотреть сообщение
правильно вывести полученный массив на экран
Как-то так
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <algorithm>
#include <iterator>
 
int main()
{
   int arr[] = { 1, 2, 3, 4, 5 };
 
   std::copy(arr, arr + sizeof arr / sizeof *arr, std::ostream_iterator<int> (std::cout, " "));
   std::cout << std::endl;
}
http://liveworkspace.org/code/1nffz3$0
ValeryS
Модератор
6514 / 4980 / 460
Регистрация: 14.02.2011
Сообщений: 16,489
13.12.2012, 23:31     почему не получается правильно вывести полученный массив на экран #5
Цитата Сообщение от Bulding Посмотреть сообщение
Скажите,в чем я тормознул.
наверно в этом
Цитата Сообщение от Bulding Посмотреть сообщение
cout<<"New array="<<a[i]<<endl;
здесь i после этого цикла
Цитата Сообщение от Bulding Посмотреть сообщение
for (i=0;i<n;i++)
будет равна n
и получи выход за пределы массива

ну а о том что так массив не выводят ты уже слышал
тебе надо так примерно
C++
1
2
for (i=0;i<n;i++)
 cout<<"New array="<<a[i]<<endl;
Amator
1036 / 368 / 9
Регистрация: 11.11.2008
Сообщений: 3,166
Завершенные тесты: 2
13.12.2012, 23:51     почему не получается правильно вывести полученный массив на экран #6
ValeryS,
C++
1
2
for (i=0;i<n;i++)
 cout<<"New array="<<a[i]<<endl;
будет каждый раз выводить new array=5, new array=7 и т.д. new array в данном случае лучше вынести за цикл.
Да и выхода за пределы, также если не ошибаюсь, не будет. Максимальное значение которое примет i будет равно 4, что нам и требуется. В массиве 5 элементов, индекс начинается с нуля, соответственно пятый элемент вызывается как a[4].
Упс, не правильно понял. Хотя все равно, как мне кажется, выхода за предел массива не случится, а данным куском
C++
1
cout<<"New array="<<a[i]<<endl;
выведется пятый элемент.
ValeryS
Модератор
6514 / 4980 / 460
Регистрация: 14.02.2011
Сообщений: 16,489
13.12.2012, 23:57     почему не получается правильно вывести полученный массив на экран #7
Цитата Сообщение от Amator Посмотреть сообщение
пс, не правильно понял. Хотя все равно, как мне кажется, выхода за предел массива не случится, а данным куском
C++
1
cout<<"New array="<<a[i]<<endl;
выведется пятый элемент.
посмотри чему равна i после этого цикла
Цитата Сообщение от Bulding Посмотреть сообщение
for( i=0;i<n;i++)
10 строчка у ТС

Добавлено через 1 минуту
Цитата Сообщение от Amator Посмотреть сообщение
будет каждый раз выводить new array=5, new array=7
здесь согласен промашку дал
просто тупо скопировал и добавил цикл
Amator
1036 / 368 / 9
Регистрация: 11.11.2008
Сообщений: 3,166
Завершенные тесты: 2
13.12.2012, 23:58     почему не получается правильно вывести полученный массив на экран #8
ValeryS, четырем. Там ведь жесткое ограничение i<n, n=5, значит i остановится на 4.
Bulding
0 / 0 / 0
Регистрация: 13.12.2012
Сообщений: 47
14.12.2012, 00:00  [ТС]     почему не получается правильно вывести полученный массив на экран #9
все я понял в чем ошибка,спасибо
Amator
1036 / 368 / 9
Регистрация: 11.11.2008
Сообщений: 3,166
Завершенные тесты: 2
14.12.2012, 00:01     почему не получается правильно вывести полученный массив на экран #10

Не по теме:

мы спор еще не закончили


Все, ValeryS, извиняюсь, я не прав) Действительно 5. Сейчас пересчитал.
ValeryS
Модератор
6514 / 4980 / 460
Регистрация: 14.02.2011
Сообщений: 16,489
14.12.2012, 00:03     почему не получается правильно вывести полученный массив на экран #11
Цитата Сообщение от Amator Посмотреть сообщение
ValeryS, четырем. Там ведь жесткое ограничение i<n, n=5, значит i остановится на 4.
ага сщаз
i =0 в цикл входим
i =1 в цикл входим
i =2 в цикл входим
i =3 в цикл входим
i =4 в цикл входим
i =5 в цикл не входим поскольку 5<5 ложь
но переменная то так и осталась равна 5
и вот мы добираемся до этой строчки
Цитата Сообщение от Bulding Посмотреть сообщение
cout<<"New array="<<a[i]<<endl
и получаем a[5]
Bulding
0 / 0 / 0
Регистрация: 13.12.2012
Сообщений: 47
14.12.2012, 00:04  [ТС]     почему не получается правильно вывести полученный массив на экран #12
вот все программа получилась


Код
#include <iostream>
using namespace std;

int main()
{
    int i,n=5;
    int k=0;
    int a[5];
    cout<<"Array=";
    for (i=0;i<n;i++)
    cin>>a[i];
    for(int i=k;i<n-1;i++)
    a[i]=a[i+1];
    n=n-1;
    for (i=0;i<n;i++)
    cout<<"New array="<<a[i]<<endl;
    return 0;
}
ValeryS
Модератор
6514 / 4980 / 460
Регистрация: 14.02.2011
Сообщений: 16,489
14.12.2012, 00:08     почему не получается правильно вывести полученный массив на экран #13
а скажи мне в чем тайный смысл
Цитата Сообщение от Bulding Посмотреть сообщение
for (i=0;i<n;i++)
Цитата Сообщение от Bulding Посмотреть сообщение
for(int i=k;i<n-1;i++)
Цитата Сообщение от Bulding Посмотреть сообщение
for (i=0;i<n;i++)
ты уж везде одинакого пиши
при такой записи у тебя две переменных i
одна действует во время всей функции
другая на 12 и 13 строчке
Bulding
0 / 0 / 0
Регистрация: 13.12.2012
Сообщений: 47
14.12.2012, 00:24  [ТС]     почему не получается правильно вывести полученный массив на экран #14
все верно,мне нужно удалить первый элемент в массиве и все,через переменную k я указываю этот элемент
ValeryS
Модератор
6514 / 4980 / 460
Регистрация: 14.02.2011
Сообщений: 16,489
14.12.2012, 00:29     почему не получается правильно вывести полученный массив на экран #15
Цитата Сообщение от Bulding Посмотреть сообщение
все верно,мне нужно удалить первый элемент в массиве и все,через переменную k я указываю этот элемент
я тебе про другое
почему ты во всех трех циклах не написал
C++
1
for(int i=........
или
C++
1
for( i=........
у тебя каждый цикл оформлен по своему
Bulding
0 / 0 / 0
Регистрация: 13.12.2012
Сообщений: 47
14.12.2012, 00:39  [ТС]     почему не получается правильно вывести полученный массив на экран #16
а да это просто случайно,это я в начале просто так сделал,а потом все таки решил в начале все написать,чтобы каждый раз не писать,а про этот забыл
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2012, 00:44     почему не получается правильно вывести полученный массив на экран
Еще ссылки по теме:

Почему не выводит на экран массив C++
Выделение памяти под массив в классе. Почему не могу правильно выделить? C++
C++ Подскажите почему не правильно заносит значения в массив
C++ Не получается вывести обработанный массив
C++ Почему с помощью std::cin не получается считать с клавиатуры массив пользовательского типа?

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

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт CЭксперт С++
6676 / 3857 / 511
Регистрация: 29.11.2010
Сообщений: 10,217
14.12.2012, 00:44     почему не получается правильно вывести полученный массив на экран #17
Bulding, лучше объявлять внутри цикла, тогда переменная будет локальной относительно этого цикла.
Yandex
Объявления
14.12.2012, 00:44     почему не получается правильно вывести полученный массив на экран
Ответ Создать тему
Опции темы

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