![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 07.03.2008
Сообщений: 31
|
![]()
Разъясните пожалуйста работу данной программы:
Код:
При выполнении выдает Third time volume equals: 200 Не могу понять - Почему функции VolumeCube не передалось значение width=25? И результат был бы 5000 Может ктонибудь прокомментирует этот код с учебника? |
![]() |
![]() |
![]() |
#2 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]()
А где вы такой код взяли? Может в третьем случае там всё-таки было:
Код:
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 07.03.2008
Сообщений: 31
|
![]()
B_N ты прав код я изменил... и столкнулся с странной вещьююю. Мне не совсем понятной
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 20.02.2008
Сообщений: 75
|
![]() |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 07.03.2008
Сообщений: 31
|
![]()
alexx777
Не могу понять - Почему функции VolumeCube не передалось значение width=25? И результат был бы 5000 |
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
![]()
Еще раз
Задано: int VolumeCube(int length, int width=25, int height=1); Мы передаем фактические параметры. Как уже говорилось имеет значение только порядок их следования, а не имя: volume = VolumeCube(length, height); // length=100, height = 2 внутри функции в соответствии с порядком: length = 100, width=2, height=1 - только height по умолчанию Вот если можно было-бы (Не помню, допускает ли C пропуск одного параметра) volume = VolumeCube(length, , height); тогда width = 25 |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 07.03.2008
Сообщений: 31
|
![]()
alexBlack , вот интересует последнее выражение!
Первые 2- понятно. но ведь volume = VolumeCube(length, , height); Third time volume equals: 200 Тоесть 25 вообще в умножении потом не учавствует. return (length * width * height); width тут не 25! Его вообще нет. Чему он вообще тут равен тогда? |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 29.10.2007
Сообщений: 628
|
![]()
Когда Вы передаете функции volume = VolumeCube(length, height); тоесть length, height, то получается что в самой функции return (length * width * height);
length = length, а width получается равен height и равен 2, ну а height по умолчанию (int height=1 это когда вы функции объявляли) равен 1 => 100 * 2 * 1 = 200 Поэтому то и выводится 200... Но возможно я и не прав, так что не вините... ![]() Последний раз редактировалось Rembo; 11.03.2008 в 22:41. |
![]() |
![]() |
![]() |
#9 | |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]() Цитата:
Код:
VolumeCube(length, width, 1); или VolumeCube(100, 50, 1); А когда Код:
VolumeCube(length, height, 1); или VolumeCube(100, 2, 1); |
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 07.03.2008
Сообщений: 31
|
![]()
B_N, спасибо за помощь. Сейчас мне понятно, но раньше я почему то обращал внимание на имя параметра, а не на позицию. Хз
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Почему у мну ошибка??? | Altera | Общие вопросы Delphi | 4 | 09.03.2008 09:29 |
почему не находит??? | vipER | Общие вопросы C/C++ | 1 | 26.09.2007 14:26 |
Почему? | Sota | О форуме и сайтах клуба | 4 | 26.07.2007 16:26 |
Почему так? | Сильванович Михаил | Общие вопросы C/C++ | 2 | 03.07.2007 11:57 |
Обьясните почему так... | malevich | Общие вопросы Delphi | 5 | 10.02.2007 17:29 |