|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.11.2017, 01:04 | #1 |
Регистрация: 28.11.2017
Сообщений: 3
|
В одномерном целочисленном массиве a[n] вычислить 1) номер максимального элемента; 2) произведение элементов массива, между 1-м и 2-м нулевыми
Начал писать программу, не понимаю, что делать дальше. Вот задание: В одномерном массиве, состоящем из n целых элементов, вычислить:
1) номер максимального элемента массива; 2) произведение элементов массива, расположенных между первым и вторым нулевыми элементами. Преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в нечетных позициях, а во второй половине ‒ элементы, стоявшие в четных позициях. А вот моё начало: Код:
Можно сказать, что 1 задание сделал, дальше не понимаю, что делать Последний раз редактировалось Serge_Bliznykov; 28.11.2017 в 09:42. |
28.11.2017, 09:30 | #2 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
1) Скажи, что храниться в "maxelem" и "maxind" и как это соотноситься с твоим заданием?
2) (по поводу 2-го задания): а если нулевых элементов не будет вообще? У тебя же случайное генерация значений, а значит может быть всё что угодно: 2.jpg Возьми (временно) переназнач все элементы массива, типа такого: Код:
Реши "в ручную" на бумаге это задание, - чтобы потом проверять с машинным расчётом... Это задание легко решается с помощью параметров "for"-а (скажи, какие параметры он требует): 3.jpg ... ну всё, осталось только найти "индексы 1-го и второго нулевых элементов" и подставить в "for". 3) (по поводу 3-го задания): можно сделать по разному... Ну сделай с использованием 2-х дополнительных массивов: 4.jpg ... сначала данные сортируются (по чётности позиции), а потом отсортированные данные "возвращаются" назад в родительский массив. p.s.1: выведи на экран эти два массив, чтобы проверить правильность работы программы. p.s.2: прочитай мой пост 4-ре раза, а то с первого раза ты половины информации не воспримешь (по себе сужу). Последний раз редактировалось ura_111; 28.11.2017 в 09:34. |
28.11.2017, 14:42 | #3 |
Пользователь
Регистрация: 13.11.2016
Сообщений: 84
|
Код:
|
03.12.2017, 15:28 | #4 |
Регистрация: 28.11.2017
Сообщений: 3
|
с 1 и 2 заданием разобрался, не могу понять, почему не работает 3 задание, ошибок не выдает, но работает неправильно и еще нужно сделать эту программу с использованием функции, это я вообще без понятия как. Код:
#include <time.h> #include <stdlib.h> #include <conio.h> #define n 10 int main () { int a[n], i, maxelem, maxind, k, one, two, pr, b[5], c[5], m, r; srand (time (NULL)); for (i=0; i<n; i++) a[i]=rand()%11; printf ("\n"); for (i=0; i<n; i++) printf ("%d ",a[i]); maxelem=a[0]; maxind=0; for (i=0; i<n; i++) { if (a[i]>maxelem) { maxelem=a[i]; maxind=i; } } printf("\nmaxind=%i", maxind ); k=0; for ( i = 0; i < n; i++) { if (a[i] == 0 && k < 1) { one = i; k++; } } k=1; for ( i = one; i < n; i++) { if (a[i + 1] == 0 && k < 2) { two = i+1; k++; } } pr=1; for ( i = one + 1; i < two; i++) { pr=pr*a[i]; } printf ("\npr=%i", pr); for( i=0; i<n; i++) { if((i%2)==0) { b[m]=a[i]; m++; } else { c[r]=a[i]; r++; } } for (i=0;i<n;i++) { a[i]=b[i]; } for (i=0;i<n;i++) { a[m+i]=c[i]; } printf("\n%i", a[i]); getch (); return(0); } |
03.12.2017, 17:57 | #5 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
У меня ошибку вывело на "srand(time(NULL));" -я его закомментировал. Но, если у тебя всё ОК, тогда можешь разкомментировать.
Сопоставь со своим кодом: Код:
|
03.12.2017, 18:20 | #6 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
Хотя нет, возврат лучше так:
Код:
|
03.12.2017, 20:27 | #7 |
Регистрация: 28.11.2017
Сообщений: 3
|
Я разобрался и сделал так. Код:
#include <time.h> #include <stdlib.h> #include <conio.h> #define n 10 int main () { int a[n], i, maxelem, maxind, k, one, two, pr, m1=0, m2, w; srand (time (NULL)); for (i=0; i<n; i++) a[i]=rand()%11; printf ("\n"); for (i=0; i<n; i++) printf ("%d ",a[i]); maxelem=a[0]; maxind=0; for (i=0; i<n; i++) { if (a[i]>maxelem) { maxelem=a[i]; maxind=i; } } printf("\nmaxind=%i", maxind ); k=0; for ( i = 0; i < n; i++) { if (a[i] == 0 && k < 1) { one = i; k++; } } k=1; for ( i = one; i < n; i++) { if (a[i + 1] == 0 && k < 2) { two = i+1; k++; } } pr=1; for ( i = one + 1; i < two; i++) { pr=pr*a[i]; } printf ("\npr=%i", pr); printf ("\n"); if ((n % 2) == 1) m2 = n - 2; else m2 = n - 1; while (m1 < m2) { w = a[m2]; a[m2] = a[m1]; a[m1] = w; m1 =m1 + 2; m2 =m2 - 2; } for (i = 0; i <= (n - 1); i++) printf(" %d ", a[i]); _getch(); return 0; } ОСТАЛОСЬ КАК-ТО СДЕЛАТЬ ЭТУ ПРОГРАММУ С ИСПОЛЬЗОВАНИЕМ ФУНКЦИИ, ТОЛЬКО КААААК, БЕЗ ПОНЯТИЯ ВООБЩЕ |
03.12.2017, 22:07 | #8 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
Функция - это чёрный ящик, который принимает параметры (переменные) и возвращает обработанный результат. Типа такого:
1.jpg а вообще, если ничего не понятно, посмотри видео: https://www.youtube.com/watch?v=HoBeQEXhhn8 https://www.youtube.com/watch?v=QCGXOsQbnd0 https://www.youtube.com/watch?v=wy00um2PjZE https://www.youtube.com/watch?v=1BXIejckBds https://www.youtube.com/watch?v=sNvjOSmtdnY ............ ............ на ютубе посмотри... Обращай внимание "как передавать в функцию переменные" и "как из функции получить результат"... В любом случае (здесь никто за тебя решать не будет) тебе надо немного поработать: почитать, посмотреть, поэкспериментировать с кодом... Это не трудно - уверяю тебя. В интернете куда не копнёшь - везде тема функций, для языка Си, расписана в мельчайших подробностями и с множественными примерами. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
PASCAL Определить порядковый номер и значение максимального элемента массива n элементов | Наталья18) | Помощь студентам | 2 | 22.12.2015 09:14 |
В целочисленном одномерном массиве A(N) найти номер последнего максимального значения среди нечетных элементов (Pascal) | Vladimir Ryabov | Помощь студентам | 0 | 27.11.2011 13:59 |
В одномерном массиве , состоящем из n целочисленных элементов, вычислить номер максимального элемента мас | Ufa | Помощь студентам | 1 | 21.04.2010 14:06 |
В одномерном массиве, состоящем из n вещественных элементов, вычислить сумму элементов массива | HazelHen | Общие вопросы C/C++ | 2 | 29.03.2009 15:16 |
вычислить номер и величину максимального элемента массива, произведение элементов, среднее арифметическое | Romer9999 | Паскаль, Turbo Pascal, PascalABC.NET | 6 | 19.01.2009 16:35 |