| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Приветствую, есть проблема |
| Автор: SIMarOK 25.10.2004, 22:31 |
| Мне задали сделать лабу по массивам в С++, лабораторная очень простая по своеё сути, вот условие: В массиве, содержащем не более 21 числа, подсчитать среднее арифметическое для положительных элементов. Если среднее больше заданного числа, положительные элементы исходного массива уменьшить на это число, а отрицательные - увеличить. Найти максимальный элемент полученного массива и его номер. Формат числа ±цц.ц. Результаты распечатать в виде: Исходный массив: …………………………………………………… Заданное число …….…….. Среднее для положительных элементов …….. Полученный массив …………………………………………………… Номер максимума …. помогите плиз кто знает...в долгу не останусь Пасиб |
| Автор: Step 26.10.2004, 09:03 |
| Модератор: Название темы должно отражать ее суть! |
| Автор: Vaulter 26.10.2004, 12:28 | ||
SIMarOK
чем помочь то?программу написать? за это деньги берут ;) |
| Автор: SIMarOK 26.10.2004, 15:43 | ||||||
Сорри, не знал...исправлюсь Добавлено @ 15:44
Сколькож это стоить будет? Это ведь даже не программа...а просто алгоритм для детей Добавлено @ 15:45 помоголиб бедному студенту первого курса |
| Автор: Step 26.10.2004, 16:02 | ||
модуль расчета
Добавлено @ 16:09 тут можно еще долго извращаться над моим кодом, оптимизировать его... избовляться от лишних циклов, но думаю вам это не нужно |
| Автор: SIMarOK 26.10.2004, 16:15 |
| Сейчас попробую разобраться, спасибо за помощь |
| Автор: Step 26.10.2004, 16:23 | ||
если что спрашивайте, я не расписывал как ввести и вывести результат, т.к. с консолью давно не работал... |
| Автор: SIMarOK 26.10.2004, 16:34 | ||
Вот что я пока дополнил, теперь осталось сделать вывод результатов с очисткой экрана
|
| Автор: SIMarOK 26.10.2004, 17:19 | ||
Вот посмотрите пожалуйста, почему то он выводит sr равное нулю, хотя поидее оно должно быть не нулем, где то ошибка...И номер максимума пишет тоже 0. И как сделать так чтобы он напечатал все значении массивов в строчку?
|
| Автор: Step 26.10.2004, 17:31 |
| каретку переводить не надо... как ты сейчас выводишь... код покажи |
| Автор: SIMarOK 26.10.2004, 17:39 | ||
Вот
|
| Автор: Step 26.10.2004, 17:52 |
| float sum; заменить float sum=0; внимательнее надо быть а он и должен значения массива у тебя в строку гнать for (i=0;i<21;i++){ if (mas[i]>max){ max=mas[i]; kol=i; } - вот тут нехватает еще фигурной скобки.... а в конце проги убрать одну надо clrscr(); блин да у тебя наверное хаос при выводе творился Добавлено @ 17:57 и ноль у тебя потомучто scanf("%d", &mas[i]); а нужно scanf("%f", &mas[i]); |
| Автор: SIMarOK 26.10.2004, 18:03 |
| Вот когда я изменил фигурные скобки на местах. по твоим указаниям, ничего не изменилось Что насчет значений...он всеровно почему то везде по нулям выводит...вот: http://simarok.narod.ru/shard.JPG |
| Автор: Step 26.10.2004, 18:05 |
| и еще одна ошибка printf("mas[%d]=%.02f ", i, mas[i]); |
| Автор: SIMarOK 26.10.2004, 18:09 | ||
Во, теперь выводит, спасибо |
| Автор: Step 26.10.2004, 18:19 | ||
вообщем рабочий код
|
| Автор: SIMarOK 26.10.2004, 18:20 |
| Но вот нашел еще одну проблему: он когда выводит массив, то пишет уменьшенные числа на загаданное число...т.е. как то надо сделать чтоб он выводил исходные.... |
| Автор: Step 26.10.2004, 18:23 |
| все правельно вставь вот это printf("Isxodniy massiv: "); for (i=0; i<21; i++) { printf("mas[%d]=%.02f ", i, mas[i]); } еще и сразу после этого printf("Vvedite 4islo\ng=", g); scanf("%f", &g); и очистку экрана не забудь перенисти |
| Автор: SIMarOK 26.10.2004, 18:49 | ||
| Всё, большое спасибо тебе Step, помог новичку Вот собственно что получилось в итоге
|
| Автор: SIMarOK 27.10.2004, 19:42 |
| А можно ли этот как-то представить ввиде функций? |
| Автор: Step 28.10.2004, 11:00 |
| можно, что именно Добавлено @ 11:04 можно все, можно по частям, с целью повторного использования... да можно все что угодно творить, главное цель какая |
| Автор: SIMarOK 28.10.2004, 16:24 |
| Нужно представить этот код с функциями...вот типо плана: float mas[21] Do ввод пользователем i while 1<i<=21 Функции: 1) Ввод массива 2) Вывод 3) Нахождение sr 4) преобразование массива А распечатка результатов, в виде заданном в условии, в самом низу |
| Автор: Step 28.10.2004, 16:30 | ||
дам пример одной функции, а там ковыряй дальше уже сам...
|
| Автор: SIMarOK 2.11.2004, 21:30 | ||
В чем здесь ошибка? После заполнения массива он выводит ошибку "что вызвал общую ошибку защиты вмодуле ....exe в 0001:01А6 |
| Автор: Step 3.11.2004, 10:45 | ||
поставь в конце эту функцию в начале оставь только вот такую строчку void massivShnik(int k); и удали из функции вот эту строчку float mas[21]; |
| Автор: SIMarOK 3.11.2004, 18:59 | ||||
Ошибка всеровно выскакивает...а если убрать float mas[21]; то вообще в компиле выявляет ошибку об не объявленной переменной |
| Автор: SIMarOK 21.11.2004, 15:26 |
| Помогите плиз ктонибудь переделать эту программу тоже с функциями...ну никак не выходит...я пробывал делать, но у меня распечатка не работает... Спасибо. |