Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 28.06.2011, 18:35   #1
zee
Новичок
Джуниор
 
Регистрация: 28.06.2011
Сообщений: 2
Печаль Волшебная математика внутри таблицы

Товарищи, уже битый час бьюсь над самой простой в мире задачкой.
Вообще, по задаче нужно было найти среднее арифметическое строки. "Ага, проще простого!" - скажете вы. Но это превратилось в самое настоящее испытание для мозгов.
По совершенно неведомой причине VCPP считает только последнюю строчку. Или записывает только последнюю, черт его разберет.
Код:
for (i=0; i<5; i++)
	arr [i, 4] = arr [i, 3] + 20;
Я же не сошел с ума? Этот кусок кода ведь должен записать в последний столбец предпоследний + 20? Или я нажохусь в горячечном бреду?
У меня получается, что он весь последний столбец заполняет arr [5,3] + 20.
И да, Борланд не предлагайте - я уж и его ставил, он просто отказывается запускаться. Видимо, запутался в миллионе чекбоксов при установке.
zee вне форума Ответить с цитированием
Старый 28.06.2011, 20:01   #2
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 946
По умолчанию

Резервирование места под массив проверьте. За границы размерности, скорее всего, вылезаете...

Added 18:05 CET
> arr [5,3] + 20
5-ю строку (при индексации с 0) Вы, по приведенному фрагменту, вообще не трогаете.

Added 18:11 CET
Да, только дошло! Что это за индексация эл-тов двумерного массива у Вас?!

Последний раз редактировалось Vago; 28.06.2011 в 20:10.
Vago вне форума Ответить с цитированием
Старый 28.06.2011, 21:06   #3
Nedward
Пользователь
 
Регистрация: 26.06.2011
Сообщений: 85
По умолчанию

Мгммм... вот рабочий кусок кода, все как и должно быть, записывает в значение последнего столбца предпоследний + 20:

Код:
#include <iostream>
#include <sstream>

using namespace std;

void main()
{
	cout << "Hello, world!" << endl;
	int arr[5][5]; //создаем двумерный массив 5х5 элементов

	//забиваем массив случайными числами от 0 до 9:
	for (int i=0;i<5;i++)
		for(int j=0;j<5;j++)
			arr[i][j]=rand()%10;
	
	//Выводим массив на экран:
	for (int i=0;i<5;i++)
	{
		for(int j=0;j<5;j++)
			cout << arr[i][j] << " ";
		cout << endl;
	}

	//теперь вставляем Ваш кусок кода с небольшими поправками:
	for (int i=0; i<5; i++)
		arr[i][4] = arr[i][3] + 20;

	//Снова выводим массив на экран:
	cout << "New array:" << endl;
	for (int i=0;i<5;i++)
	{
		for(int j=0;j<5;j++)
			cout << arr[i][j] << " ";
		cout << endl;
	}
	return;
}
Как и заметил Vago индексация у Вас странная - Visual Studio, например, так и не понял, что имеется в виду под загадочным arr[x,y]
Nedward вне форума Ответить с цитированием
Старый 28.06.2011, 22:27   #4
zee
Новичок
Джуниор
 
Регистрация: 28.06.2011
Сообщений: 2
По умолчанию

Собственно, в этом и была проблема.
Скорее всего, матан повлиял на мой мозг и я с чего-то решил, что надо все писать в одной квадратной скобке.
Большое спасибо за помощь, сие безобразие можно удалять)
zee вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Волшебная палочка Bed Alice Помощь студентам 2 10.11.2010 16:30
Как растянуть div внутри ячейки таблицы? Benderbej HTML и CSS 6 28.08.2010 21:59
Отображение excel таблицы внутри моей формы samouelson Компоненты Delphi 4 25.05.2010 15:53
Волшебная клавиатура Syltan Операционные системы общие вопросы 7 01.10.2009 20:40
Передвинуть текст внутри ячейки таблицы RamireZ HTML и CSS 4 14.09.2009 15:19