Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
130 / 25 / 12
Регистрация: 12.08.2015
Сообщений: 221
1

Многомерный массив. Дублирование значения первого элемента строки в значении последнего элемента предыдущей

10.09.2015, 21:53. Показов 871. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте уважаемые форумчане! Решил я сегодня разобраться с многомерными массивами! И немного разочаровался в своих результатах. Лыжи-то не едут! Вот в чем дело. Я создаю обычный, не динамический двухмерный массив. И при помощи двух вложенных циклов предоставляю возможность вводить человеку данные типа int в каждый элемент массива.

И все бы хорошо, если бы не один препон, в котором и состоит весь смак ситуации. При вводе значений в каждый первый элемент новой "строки", изменяется значение последнего элемента предыдущей строки, который уже был введен. Вот пример работы моей программы:


Введите целое число для элементов 0 - ой строки:
55
877
455
32

Введите целое число для элементов 1 - ой строки:
785
333
56
0

Введите целое число для элементов 2 - ой строки:
999
888
777
665

Введите целое число для элементов 3 - ой строки:
098
765
432
111

Вы ввели следующие числа:

55 877 455 785
785 333 56 999
999 888 777 98
98 765 432 111
Для закрытия данного окна нажмите <ВВОД>...



Обратите внимание на то, уважаемые форумчане, что начиная с последнего элемента первой строки, ввод производится ошибочно.
То есть по какой-то неизвестной мне причине, последний элемент предыдущей строки всегда равен первому элементу последующей. Вопрос такой: А что за бред происходит??? И как избежать этой фигни? Уже два часа пытаюсь найти разумный ответ на увиденную чушь. Безрезультатно. Не могу исправить косяк. есть подозрение, что внешний цикл производит лишнюю итерацию и лишний инкремент до того, как потребуется проверить условие внутреннего цикла. Но мысль еще не оформилась, я не могу исправить ЭТО, не получается.
Но я уверен, что строка целиком вводится верно. Это видно из последнего элемента последней строки, который имеет верное значение. Проблема где-то в переходах между внутренним и внешним циклом, но где???
Вот код, помогите мне пожалуйста, разъясните, что не так...

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
#include<iostream>
 
using namespace std;
 
 
int main()
{
  const int stroka_max = 3;
  const int stolbec_max = 3;
  int int_array [stroka_max] [stolbec_max];
 
 
  //Начало внешнего цикла ввода данных в массив
 
  for(int i = 0; i <= stroka_max; i++)
  {
      cout << endl
           << "Введите целое число для элементов " << i << " - ой строки"
           << endl;
      for (int j = 0; j <= stolbec_max; j++)
      {
          cin >>  int_array[i][j];
      }
  }
 
//Цикл вывода таблицы
  cout << endl
         << "Вы ввели следующие числа: "
         << endl;
  for(int i = 0; i <= stroka_max;i++ )
  {
      cout << endl;
      for (int j = 0; j <= stolbec_max; j++)
      {
         cout << int_array[i][j] << " ";
      }
  }
Я буду благодарен за помощь и разъяснение данного вопроса.
Делано все на Qt, KDE, Debian, доступа к MS Visual Studio пока нет.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.09.2015, 21:53
Ответы с готовыми решениями:

Целочисленный массив. Поменять местами значения первого и последнего элемента и т.д.
Дан одномерный целочисленный массив А, состоящий из N элементов, N — заданное натуральное число,...

Массив с нахождением макс элемента и заменой первого и последнего элемента массива
Есть массив любых чисел, найти в нем максимальный элемент,умножить его на все последующие элементы,...

Найти строки, квадрат первого элемента которых меньше абсолютного значения второго элемента
Для матрицы из 2 столбцов и 9 строк отпечатать номер каждой строки, квадрат первого элемента...

Массив: Найти в каждой строке матрицы максимальный и минимальный элементы и поместить их на место первого и последнего элемента строки соответственно.
Помогите решить еще задачую. Найти в каждой строке матрицы максимальный и минимальный элементы и...

2
419 / 418 / 167
Регистрация: 28.11.2010
Сообщений: 1,183
10.09.2015, 21:57 2
в циклах <, а не <=
1
130 / 25 / 12
Регистрация: 12.08.2015
Сообщений: 221
10.09.2015, 22:01  [ТС] 3
Работает как надо, но теперь у меня выпадает крайний элемент массива. Но всеравно, спасибо большое!
Так бы я уже не нашел, у меня мозг устал...
0
10.09.2015, 22:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.09.2015, 22:01
Помогаю со студенческими работами здесь

В массиве поменять значения первого и последнего элемента
Как в массиве поменять значения первого и последнего элемента? Паскаль

Заменить все элементы, которые меньше последнего элемента на значение первого элемента
2) Заменить все элементы, которые меньше последнего элемента на значение первого элемента.(2задание)

Найти номер последнего максимального элемента среди элементов, меньших Т1, и расположенных до первого элемента
Задание. Задан целочисленный одномерный массив A из N элементов. Найти номер последнего...

Найти номер последнего минимального элемента средиэлементов, меньших Т1 и расположенных до первого элемента, большего Т2
Работает правильно ,только если встречает число &gt;=Т2. В другом случае выводит номер,равный...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru