Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 773
от 19.06.2007, 22:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 484, Экспертов: 67
В номере:Вопросов: 1, Ответов: 3


Вопрос № 91410: Здравствуйте, уважаемые эксперты. У меня такой вопрос: как переделать задачу (она в приложении) так,чтобы в ней использовался массив указателей. Задача звучит так: <Ввести двумерный квадратный массив. Посчитать сумму элементов, расположенных выше ...

Вопрос № 91.410
Здравствуйте, уважаемые эксперты. У меня такой вопрос: как переделать задачу (она в приложении) так,чтобы в ней использовался массив указателей. Задача звучит так: <Ввести двумерный квадратный массив. Посчитать сумму элементов, расположенных выше главной дигонали.> Задача в приложении решена без использования массива указателей.

Приложение:

Отправлен: 14.06.2007, 17:48
Вопрос задал: Tochkaopori (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Sov
Здравствуйте, Tochkaopori!
...
int str=10;
int stb=10;
int **A=new int *[str];//выделили память под массив указателей на строки массива
for(int i=0;i<str;i++)//выделили память под каждую строку
A[i]=new int [stb];
...
Ответ отправил: Sov (статус: 4-ый класс)
Ответ отправлен: 14.06.2007, 19:32

Отвечает: Garmash Dima
Здравствуйте, Tochkaopori!
Желательно использовать переменные типа auto, а не глобальные переменные
В приложении программа.
переделке/добавлению подвергнуты строки с комментариями.

Приложение:

Ответ отправил: Garmash Dima (статус: 1-ый класс)
Ответ отправлен: 14.06.2007, 19:42
Оценка за ответ: 5
Комментарий оценки:
Спасибо большое! Вы мне очень помогли.

Отвечает: Терсков Сергей
Здравствуйте, Tochkaopori!
Вообще-то ваша программа не совсем верно работает. Например, считаются элементы не только над главной диагональю, но и непосредственно ее элементы. Да и цикл подсчета элементов проходит по все матрице, хотя это и не нужно. И вот в этом цикле

for(;j<=n-1;j++)
S+=A[i][j+1];}

когда j достигнет значения n-1, мы обратимся к элементу A[i][n], то есть за границы массива, что приведет к ошибке исполнения.

Так что вот переделанный код с динамическим выделением памяти (и, кстати, динамическим удалением, о чем не нужно забывать).

Приложение:

Ответ отправил: Терсков Сергей (статус: Студент)
Ответ отправлен: 15.06.2007, 03:02


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

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


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.52 от 02.05.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное