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

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

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

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

13.12.2012, 23:12. Просмотров 563. Ответов 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2012, 23:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос почему не получается правильно вывести полученный массив на экран (C++):

Поделить вектор х на 10, вывести полученный массив на экран. Найти произведение отрицательных элементов - C++
помогите пожалуйста с лабой!

Все положительные элементы замените минимальными. Выведите на экран исходный и полученный массив - C++
2.Задайте массив из n элементов. Все положительные элементы замените минимальными. Выведите на экран исходный и полученный массив. ...

Как объявить массив на 5 элементов, вывести на экран, проинициализировать его и снова вывести на экран? - C++
как объявить массив на 5 элементов, вывести на экран, проинициализировать его и снова вывести на экран?

что у меня не правильно? (не получается вывести 2 массива) - C++
почему не получается вывести 2 массива #include &lt;iostream&gt; using namespace std; void array_y(int *arr1) void array_z(int...

Дан массив натуральных чисел А[m,n] и число а. Вывести этот массив на экран, вычислит количество элементов равных а и вывести их индексы - C++
Дан массив натуральных чисел А и часло а. Вывести этот массив на экран, обчислить количество элементов равных а и вывести их индексы. ...

Заменяемые значения вывести в массив В. Вывести на экран полученную матрицу и массив B. - C++
Помогите пжл. Задана матрица Z(5,5). Если в строке есть хотя бы один нулевой элемент, то найти произведение всех ненулевых элементов,...

16
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
13.12.2012, 23:14 #2
Вам нужно вывести весь массив?
0
Amator
1043 / 375 / 9
Регистрация: 11.11.2008
Сообщений: 3,156
Завершенные тесты: 2
13.12.2012, 23:16 #3
Если я не ошибаюсь(отформатируйте пожалуйста код, трудно читать), то вывод массива нужно тоже циклом сделать.
C++
1
2
3
4
for(i=0; i<n; i++)
{
    cout << a[i];
}
0
go
Эксперт С++
3586 / 1366 / 129
Регистрация: 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
0
ValeryS
Модератор
6753 / 5162 / 493
Регистрация: 14.02.2011
Сообщений: 17,344
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;
0
Amator
1043 / 375 / 9
Регистрация: 11.11.2008
Сообщений: 3,156
Завершенные тесты: 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;
выведется пятый элемент.
0
ValeryS
Модератор
6753 / 5162 / 493
Регистрация: 14.02.2011
Сообщений: 17,344
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
здесь согласен промашку дал
просто тупо скопировал и добавил цикл
1
Amator
1043 / 375 / 9
Регистрация: 11.11.2008
Сообщений: 3,156
Завершенные тесты: 2
13.12.2012, 23:58 #8
ValeryS, четырем. Там ведь жесткое ограничение i<n, n=5, значит i остановится на 4.
0
Bulding
0 / 0 / 0
Регистрация: 13.12.2012
Сообщений: 47
14.12.2012, 00:00  [ТС] #9
все я понял в чем ошибка,спасибо
0
Amator
1043 / 375 / 9
Регистрация: 11.11.2008
Сообщений: 3,156
Завершенные тесты: 2
14.12.2012, 00:01 #10

Не по теме:

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


Все, ValeryS, извиняюсь, я не прав) Действительно 5. Сейчас пересчитал.
0
ValeryS
Модератор
6753 / 5162 / 493
Регистрация: 14.02.2011
Сообщений: 17,344
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]
0
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;
}
0
ValeryS
Модератор
6753 / 5162 / 493
Регистрация: 14.02.2011
Сообщений: 17,344
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 строчке
0
Bulding
0 / 0 / 0
Регистрация: 13.12.2012
Сообщений: 47
14.12.2012, 00:24  [ТС] #14
все верно,мне нужно удалить первый элемент в массиве и все,через переменную k я указываю этот элемент
0
ValeryS
Модератор
6753 / 5162 / 493
Регистрация: 14.02.2011
Сообщений: 17,344
14.12.2012, 00:29 #15
Цитата Сообщение от Bulding Посмотреть сообщение
все верно,мне нужно удалить первый элемент в массиве и все,через переменную k я указываю этот элемент
я тебе про другое
почему ты во всех трех циклах не написал
C++
1
for(int i=........
или
C++
1
for( i=........
у тебя каждый цикл оформлен по своему
0
14.12.2012, 00:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2012, 00:29
Привет! Вот еще темы с ответами:

с++ не получается вывести на экран MAX2 и MAX3 - C++
K = (MAX2(a,a+b) + MAX3(a,b+c,a+b))/(1 + MAX2(a*b,b*c) + MAX3(a+b*c,15,a*c) гдето затаилась ошибка, не получается вывести на экран...

а как вывести на экран? через printf не получается - C++
#include &lt;iostream&gt; #include &lt;string.h&gt; using namespace std; struct car { char marka; int capacity; ...

Подскажите почему не правильно заносит значения в массив - C++
Пытаюсь запрограммировать явную схему уравнения теплопроводности, надо занести в массив значения fi(х) в массив, только в одиц столбец u,...

Я хочу вывести 2 массива при чем чтобы один отличался от другого на +1. Почему не получается? - C++
В ЧЕМ У МЕНЯ ОШИБКА? #include &lt;stdlib.h&gt; #include &lt;iostream.h&gt; #include &lt;iomanip.h&gt; #include &lt;time.h&gt; #include &lt;conio.h&gt; ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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