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

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

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

Одномерный массив - C++

02.12.2009, 18:34. Просмотров 513. Ответов 9
Метки нет (Все метки)

Здравствуйте!
Объясните, плиз.
1)Почему по-разному работает прога, если я
-объявляю массив int b[5] = {0, 0, 0, 0, 0} ; Тогда в итоговом массиве последний элемент неверный
- ввожу элементы массива b в цикле for
2) Почему не выходит из цикла выполнение программы, если я ввожу r(количество векторов с экрана), и все правильно работает, когда задаю r через константу

Вот текст программы, которая суммирует вектора, количество которых задается переменной r.
Сложение 2-х векторов надо оформить процедурой

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
void summ (int v1[5], int v2[5], int v3[5])
{
int i;
    for (i=1 ; i<=5; i++)
   {
         v3[i]=v1[i]+v2[i] ;
 
   }
}
 
 
void main()
 
{
   int a[5] , i ,s; 
 // int r;
 
   int b[5]; 
// int b[5]={0, 0, 0, 0, 0};
 
   const r=3 ;
 
    clrscr();
 
//    cout<<"vvedite kolichestvo vektorov ";
//    cin>>r ;
 
  for (i=1; i<=5; i++)
         {
 
            b[i]=0;
          }
 
for (s=1; s<=r; s++)
{
 
     cout<<"vvedite vektor ";
 
        for (i=1; i<=5; i++)
         {
 
            cin>>a[i];
          }
 
    summ (b,a,b);
 
}
 
 
         cout<<"summa vektorov : " ;
             for (i=1 ; i<=5 ;i++)
               {
                      cout<<b[i]<<" " ;
              }
 
 
getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2009, 18:34     Одномерный массив
Посмотрите здесь:

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

Одномерный массив - C++
В одномерном массиве, состоящем из п целых элементов, вычислить: 1) номер максимального элемента массива; 2) произведение элементов...

Одномерный Массив - C++
дан массив из N вещественных чисел, подсчитать сколько в массиве элементов равных минимальному значению

одномерный массив - C++
Составить программу, которая отыскивает среди пар элементов одномерного массива М те, разность между элементами которых есть величина...

одномерный массив. - C++
Даны два массива x содержащий k элементов и y содержащий n элементов и число q. Найти сумму вида x+y, наиболее близкую к числу q. ...

Одномерный массив - C++
Помогите пожалуйста!!! 1)Сформировать одномерный массив используя датчик случайных чисел 2)Распечатать полученный массив 3)Удалить...

Одномерный массив - C++
В одномерном массиве, состоящем из n целых элементов, вычислить: 1) Минимальный по модулю элемент массива. 2)Сумму модулей элементов...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
03.12.2009, 05:45     Одномерный массив #2
C++
1
for (i=1 ; i<=5; i++)
отсчёт ведётся с нуля

C++
1
for (i = 0; i < 5; i++)
там во всех циклах
char_u
0 / 0 / 0
Регистрация: 02.12.2009
Сообщений: 3
03.12.2009, 07:20  [ТС]     Одномерный массив #3
Спасибо за ответ
А мне еще непонятно, почему не срабатывает программа, когда я ввожу r (число векторов) с экрана через cin. И все прекрасно работает, когда описываю r через константу
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
03.12.2009, 08:02     Одномерный массив #4
C++
1
2
3
4
5
cin>>r; //кол-во векторов
for (int i=0; i<r; i++)
{
  cin>>A[i]; //ввод элемента массива
}
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
03.12.2009, 08:30     Одномерный массив #5
даже так:
C++
1
2
3
4
5
6
cin>>r; //кол-во векторов
if  (r>5) r = 5;
for (int i=0; i<r; i++)
{
  cin>>A[i]; //ввод элемента массива
}
summ корректно работает???
char_u
0 / 0 / 0
Регистрация: 02.12.2009
Сообщений: 3
03.12.2009, 09:29  [ТС]     Одномерный массив #6
summ работает корректно
А почему
C++
1
2
3
4
for (int i=0; i<r; i++)
{
  cin>>A[i]; //ввод элемента массива
}
Ведь в этом цикле должно быть ограничено количество элементов в векторе (5), а не количество векторов (r)

Добавлено через 2 минуты
У меня вся проблема в способе получения значения r. По условию задачи я должна ввести r с экрана. Не получается, программа виснет при вводе векторов. А когда пишу const r=3. то все отрабатывает нормально
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
03.12.2009, 10:17     Одномерный массив #7
Цитата Сообщение от char_u
А мне еще непонятно, почему не срабатывает программа, когда я ввожу r (число векторов) с экрана через cin. И все прекрасно работает, когда описываю r через константу
во-первых в C++ int по-умолчанию не работает, то есть, вместо const r пишем const int r
во-вторых, если это значение можно менять, оно не должно быть const, поэтому, вместо const int r пишем int r

а уже потом
C++
1
cin >> r;
Цитата Сообщение от char_u
Не получается, программа виснет при вводе векторов.
нужно посмотреть что там за новый вариант кода, так как циклы построены неправильно (вылазят за массив все)
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
03.12.2009, 10:40     Одномерный массив #8
Хорошо, оставим пока вашу программу в стороне и разберёмся как нам вести количество векторов с экрана.
Первое: Что мы в данном случае понимаем под термином "вектор"? Если я правильно Вас понял, то имеется ввиду массив из пяти элементов типа int. Таким образом один вектор - один массив, два вектора - два массива, r векторов - r массивов, верно? Как организовать работу с r массивов? Логично, представить их в виде двумерного массива размерности r на 5.
То есть это должно выглядеть так:
C++
1
2
const int r =50;
int array_of_vector[r][5];
теперь давайте сделаем так, чтобы r было не константой, а вводилось пользователем с клавиатуры.
В отличии от первого случая, изначально программа не знает, какой именно будет размерность массива и не может сразу выделить память под него. Ей придётся создать массив в процессе работы делается это так:
C++
1
2
3
4
5
6
int r = 0;
cin>>r;
int** array_of_vector;
array_of_vector = new int*[r]
for(int i=0;i<r;i++)
     array_of_vector[i] = new int[5];
сделано.
Пример: хотим сложить 7-й вектор с 23-им результат записать в 13-й:
C++
1
2
for(int i=0;i<5;i++)
     array_of_vector[13][i] = array_of_vector[7][i]+ array_of_vector[23][i];
Добавлено через 5 минут
в конце программы должно быть:
C++
1
2
3
for(int i=0;i<r;i++)
      delete[]  array_of_vector[i];
delete[] array_of_vector;
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
03.12.2009, 11:13     Одномерный массив #9
C++
1
array_of_vector[12][i] = array_of_vector[6][i]+ array_of_vector[22][i];
отсчёт ведётся с нуля
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2009, 11:43     Одномерный массив
Еще ссылки по теме:

Одномерный массив - C++
Найти сумму между минимальным и максимальным элементом массива.

Одномерный массив - C++
В одномерном массиве Z. состоящем из N целых элементов, лежащих в промежутке , вычислить сумму элементов массива, расположенных после...

Одномерный массив - C++
Перепечатывайте пожалуйста задание на форум в текстовом виде.

Одномерный массив - C++
В одномрном массиве, состоящим из n целых элементов найти минимальное среднеарифметическое трех подряд идущих элементов. Изменить порядок...

Одномерный массив. - C++
Здравствуйте, помогите,пожалуйста, составить программу. Вот задание: &quot;Составить программу нахождения наибольшего элемента каждой строки...


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

Или воспользуйтесь поиском по форуму:
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
03.12.2009, 11:43     Одномерный массив #10
accept, нда действительно... спасибо.
char_u, строки:
C++
1
2
for(int i=0;i<5;i++)
     array_of_vector[13][i] = array_of_vector[7][i]+ array_of_vector[23][i];
читать как:
C++
1
2
for(int i=0;i<5;i++)
     array_of_vector[13-1][i] = array_of_vector[7-1][i]+ array_of_vector[23-1][i];
Yandex
Объявления
03.12.2009, 11:43     Одномерный массив
Ответ Создать тему
Опции темы

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