![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
sasha1212 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 11.3.2014 Репутация: нет Всего: нет |
Составить подпрограмму нахождения минимального элемента в массиве А.Используя подпрограмму найти сумму s минимальных элементов массивов А,В,С из 5,4 и 6 чисел .Ввести А,В и С,вывести их и s.Программу я написал,но не уверен что правильно,помогите исправить ее
|
|||
|
||||
EgoBrain |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 23.3.2008 Где: Комната Репутация: нет Всего: 2 |
С чего начать даже х3.
Куча ошибок как синтаксических так и программирования, так и подхода к использованию библиотек. На пару укажу:
Идентификаторы в языке могу содержать только буквы англ алфавита, цифры и знак подчеркивания, при том начинатся с цифры не могут. А ты пробел поставил.
Цикл с пустым телом, идентификатор i нераспознан, так как не объявлен. Убери ; после заголовка цикла. Далее, одно из самых главных, ты хочешь передавать в функцию массив, в ней его формировать и использовать дальше в программе. Делаешь ты это неправильно. Передаешь копию массива это раз, во вторых неопредленного размера (тут надеюсь на комментарии местных гуру). Хочешь в подпрограмме создавать внешний объект, тогда передавай адрес, так как миссив создается во время выполнения, нужно использовать кучу, поэтому будет передаваться указатель на указатель, как то так:
Но щас наверное начнут меня материть в духе "Память должна освбождаться там же где и выделяется", но я не знаю как грамотно реализовать. Дальше даже не смотрел, ждем экспертов. |
||||||
|
|||||||
sasha1212 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 11.3.2014 Репутация: нет Всего: нет |
EgoBrain, Спасибо за замечания,постараюсь исправить
|
|||
|
||||
Нэраварин |
|
||||
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 9.3.2009 Репутация: нет Всего: нет |
Это полный бред и ложь потому, что: Когда массив используется в качестве аргумента функции, передается только адрес массива, а не копия всего массива. При вызове функции с именем массива в функцию передается указатель на первый элемент массива.(с) И соответственно само по себе имя массива это указатель на его первый элемент! Не запутывайте новичка своими ужасными указателями на указатель да ещё в таком ужастном виде! Ему и так код тяжело писать а после ваших разъяснений вообще каша в голове будет! to sasha1212 Во первых определитесь на каком языке вы пишете программу? на Си или на С++ ? библиотека conio.h яляется не безопасной плохой майкрософтовской реализации для устаревших система типа MS-DOS единствено что там полезно это _getch() но для него есть множество альтернатив ошибка в коде и понимании:
Всё что выделенно красым ошибки: Во-первых Элементы массива начинаются с нуля написав i=1 вы оставили пустой превую-нулевую ячейку и %mas[i] этим действием записали значение во вторую запись вида : i<=N означает, что вы пройдёте на 1 итерацию больше а т.к. вы работаете с массивом и у вас его адреса с 0 по 49 НЕ 50 как вы обьявили потому что счёт начинается с 0 вы выёдете за границы массива и запишите значение в чужие ячейки что приведёт к краху программы Этот ответ добавлен с нового Винграда - http://vingrad.com |
||||
|
|||||
Нэраварин |
|
||||||||||||
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 9.3.2009 Репутация: нет Всего: нет |
Я уже не знаю сколько миллионов раз говорилось где только можно и где только нельзя, что главная функция программы обязана возвращать результат нулевой результат означает успешное выполнение программы...ну и далее по тексту об этом обязаны знать абсолютно все и каждый кто хоть раз в жизни видел Си или С++ исправьте на:
Сама расстановка скобо не говоря уже про форматирование настолько ужасна, что не поймёшь где ф-ция main заканчивается.... если вы в глобальной области объявили функции не стоит пихать их реализацию внутрь main !
шутки не понял, компилятор тоже не понял! после return 0; относящегося к int main(void) ничего не должно быть это свидетельство конца программы после инструкции return 0; ничего выполняться не будет, программа завершается! Это ёб***й стыд основы основ!!!
про логику поиска минимального значения вообще молчу её тут нет попытайтесь ну хоть самые элементарные азы почитать! сортировки это основа основ гугл вам в помощь!
чтобы передать в ф-цию размерность массива простым хорошим способом для новичков будет:
ну а дальше всё те же ошибки в общем как говорится учите мат.часть Этот ответ добавлен с нового Винграда - http://vingrad.com |
||||||||||||
|
|||||||||||||
sasha1212 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 11.3.2014 Репутация: нет Всего: нет |
Нэраварин,
Пишу на Си,знаю что надо начинать с i=0,но в универе нас заставлять пока начинать с 1.Попробую учесть ваши замечания и исправить код |
|||
|
||||
EgoBrain |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 23.3.2008 Где: Комната Репутация: нет Всего: 2 |
Ок, товарищь великий разоблачитель, тогда скажи мне если у топикастера задача выделять память в подпрограмме с дальнейшем использованием в вызывающей функции (отсюда все ноги и растут), так как в ней определеятеся размер массива как ты реализуешь её (задачу) средствами языка по-другому? Во-первых массив в стеке можно объявить только указав размер, ибо это стек. Во-вторых еслит ты передашь указатель на первый элемент, то подпрограмма его не изменит, а изменит его копию, соответсвенно нужно передавать указатель на указатель.
Согласен лишь с тем что формулировка "Передавать в функцию массив" в С++ не верна. Nerevar Кто ты такой я не знаю, первый раз тебя вижу, ждём экспертов. Добавлено через 8 минут и 18 секунд
Странный подход, нас сразу приучали к отчету с 0 и в Си диалекте нужно так всегда подходить к обучению, зачем они вас лишние манипуляции с сознанием заставляют делать, не есть рациональный подход... Это сообщение отредактировал(а) EgoBrain - 6.6.2014, 02:57 |
||||||||
|
|||||||||
Нэраварин |
|
||||||||||
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 9.3.2009 Репутация: нет Всего: нет |
Так в каком месте там у него эта задача выделения памяти? откуда вы этот бред вообще взяли?
я уже написал об этом ( последняя строчка кода в предидущем посте), если вам не хватает ума это понять это ваши проблемы
Вот именно после этих слов очевидно что вы бездарь и невежа не разбирающийся в предмете и смеющий утверждать то чего не знаете ....
Вчерашний школьник сегодняшний студент по умерьте свой пыл, и попытайтесь хоть, что то почитать о языке на котором вы пишите ! Этот ответ добавлен с нового Винграда - http://vingrad.com |
||||||||||
|
|||||||||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 6 Всего: 162 |
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |