![]() |
Очень нужна помощ по программированию на Си
№1
Двумерный массив случайных чисел.Найти среднее количество случайных чисел по столбцу и по строке. №2 Функция получает массив случайных чисел и возвращает все полученые числа. №3 В любом месте экрана возникает точка, превращается в круг и растет достигая максимального размера уменьшается. |
А в чем вопрос то, можно конкретней где проблема?
|
По поводу номера 1 - неясна задача. По вопросу получается, что задан массив неизвестного размера, и требуется найти среднюю длину строки и столбца. Я предполагаю, что размер массива известен, а задача состоит в нахождении среднего значения по столбцу и по строке. В этом случае логика проста:
#DEFINE ROWS <кол-во строк> #DEFINE COLS <кол-во колонок> int myArray[ROWS][COLS]; int tmpArr[COLS]; int i, j, sum; // предполагаем что массив заполнен, // инициируем вспомогательный for (i = 0; i < COLS; i++) tmpArr[i] = 0; // Вычисляем среднее по строкам, и готовим // массив под вычисление средних по столбцам for (i = 0; i<ROWS; i++) { sum = 0; for (j = 0; j < COLS; j++) { tmpArr[j] += myArray[i][j]; // суммирование столбца sum += myArray[i][j]; // суммирование строки } printf("\nAverage for row %d is %f", i, (float) (sum/COLS)); } // Среднее по столбцам for (i = 0; i < COLS; i++) printf("\nAverage for column %d is %f", i, (float) (tmpArr[i]/ROWS)); Не ручаюсь, правда, за безошибочность синтакса - набирал без компилятора вообще, из головы. По поводу второго вопроса - функция должна также получать размер массива, иначе есть все шансы грохнуться на нелегальном доступе к памяти. Кроме того, неясна формулировка "все полученные числа". В С нет множественного возврата из функции, если только она возвращает не массив. Есть вариант, когда каждый последующий вызов возвращает следующее число в массиве. Тогда что-то вот примерно такое: int func(int *myArray, int size) { static int position; if (position >= size || position < 0) position = 0; return myArray[position++]; } третий вопрос - цикл на использование функции circle со сначала возрастающим радиусом, а потом - так же понижающимся. |
Спасибо!!!!Voland25
:молись::молись::молись: |
Да не за что... Ты б задачи ставил правильнее и точнее, ответы были бы более точными.
И мой тебе совет... я, конечно, понимаю, что будучи студентом, эти все задания как не пришей кое-к-чему рукав, но выезжая на "коллективном разуме" форума, программерами не становятся :) |
Кстати, раз тут аукцион щедрости, то тоже спрошу - задача вот в чем: нужно вывести все возможные варианты расстановки скобок в выражении из Н сомножителей, если скобки полностью опр порядок действий.
Хотя бы идею подкиньте, а то совсем ни понимаю, с какого боку делать... |
Цитата:
начинаешь проверять выражение, если первой в любом месте встречается закрывающая скобка, то return false. если-же первая идёт открывающая скобка ложишь её в стек. когда встречается закрывающая скобка убираешь одны скобку из стека. если в конце выражения стек пустой - значить скобки раставленны корректно, если стек не пуст, значить ошибка при расстановки скобок. |
я порой просто поражаюсь, до какой степени можно недосказать условие :)
Походу очень напоминает то, что называется "польским выражением" (черт его знает, как звучит этот термин по-русски :)) Пример прост: выражение (a*b) записывается как *(ab), т.е. оператор сначала, потом в скобках - все операнды в порядке действия... Warchief, это не совсем то, мне кажется ... то что описано в твоем посте - это алгоритм проверки правильности расстановки скобок, а, судя по всему, человеку нужны все варианты расстановки скобок в выражении, т.е. если имеем A*B/C+D-E*F, то как один из вариантов может быть A*B/(C+D)-E*F... Добрый Дядя, прочитай, пожалуйста, внимательно мой пост прямо над твоим... Задачу более детально в студию можно?! Да, кстати... Здесь не аукцион щедрости, а люди, которые помогают другим, причем бескорыстно.. Аукцион - это звучит немного нехорошо, тебе не кажется? :rolleyes: |
Warchief, Voland25, прочитайте что человеку требуется. Ему требуется не проверка расстановки скобок, не вот эта запись с пред... (я не помню название, помню было 2 похожих типа - пред... и пост..., смысл в них похож), она нужна при вычислении собственно выражения.
Нужно... а фиг его знает. Смахивает на задачи типа базовых задач на которых учатся писать программы, хотя я таку впервые вижу. Дано число N - количество сомножителей. Вывести все возможные расстаноки скобок в выражении. Пример Вход: 3 Выход: (a*b)*c (a*b*c) a*(b*c) ((a*b)*c) (a*(b*c)) |
| Часовой пояс GMT +4, время: 22:19. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.