imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 06.01.2008, 15:54     # 1
Lyxor
Guest
 
Сообщения: n/a

Question Очень нужна помощ по программированию на Си

№1
Двумерный массив случайных чисел.Найти среднее количество случайных чисел по столбцу и по строке.

№2
Функция получает массив случайных чисел и возвращает все полученые числа.

№3
В любом месте экрана возникает точка, превращается в круг и растет достигая максимального размера уменьшается.
 
Старый 06.01.2008, 18:38     # 2
Drakosha
Full Member
 
Аватар для Drakosha
 
Регистрация: 16.10.2002
Адрес: ArchLinux, Internet
Сообщения: 557

Drakosha Реально крут(а)Drakosha Реально крут(а)Drakosha Реально крут(а)Drakosha Реально крут(а)
А в чем вопрос то, можно конкретней где проблема?
Drakosha вне форума  
Старый 07.01.2008, 01:40     # 3
Voland25
Junior Member
 
Регистрация: 28.11.2003
Адрес: Израиль
Пол: Male
Сообщения: 67

Voland25 МолодецVoland25 МолодецVoland25 Молодец
По поводу номера 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 со сначала возрастающим радиусом, а потом - так же понижающимся.
__________________
"Inter arma leges silent" - "молчат законы при звоне оружия"
Voland25 вне форума  
Старый 08.01.2008, 14:06     # 4
Lyxor
Guest
 
Сообщения: n/a

Спасибо!!!!Voland25
 
Старый 09.01.2008, 00:49     # 5
Voland25
Junior Member
 
Регистрация: 28.11.2003
Адрес: Израиль
Пол: Male
Сообщения: 67

Voland25 МолодецVoland25 МолодецVoland25 Молодец
Да не за что... Ты б задачи ставил правильнее и точнее, ответы были бы более точными.

И мой тебе совет... я, конечно, понимаю, что будучи студентом, эти все задания как не пришей кое-к-чему рукав, но выезжая на "коллективном разуме" форума, программерами не становятся
__________________
"Inter arma leges silent" - "молчат законы при звоне оружия"
Voland25 вне форума  
Старый 07.02.2008, 16:06     # 6
Добрый Дядя
Guest
 
Сообщения: n/a

Кстати, раз тут аукцион щедрости, то тоже спрошу - задача вот в чем: нужно вывести все возможные варианты расстановки скобок в выражении из Н сомножителей, если скобки полностью опр порядок действий.
Хотя бы идею подкиньте, а то совсем ни понимаю, с какого боку делать...
 
Старый 07.02.2008, 21:00     # 7
Warchief
::VIP::
 
Аватар для Warchief
 
Регистрация: 14.05.2003
Адрес: 127.0.0.1
Сообщения: 852

Warchief Отец (мать) всех ГуруWarchief Отец (мать) всех ГуруWarchief Отец (мать) всех ГуруWarchief Отец (мать) всех ГуруWarchief Отец (мать) всех ГуруWarchief Отец (мать) всех ГуруWarchief Отец (мать) всех ГуруWarchief Отец (мать) всех ГуруWarchief Отец (мать) всех ГуруWarchief Отец (мать) всех ГуруWarchief Отец (мать) всех ГуруWarchief Отец (мать) всех ГуруWarchief Отец (мать) всех ГуруWarchief Отец (мать) всех ГуруWarchief Отец (мать) всех ГуруWarchief Отец (мать) всех ГуруWarchief Отец (мать) всех Гуру
Цитата:
Сообщение от Добрый Дядя Посмотреть сообщение
Хотя бы идею подкиньте, а то совсем ни понимаю, с какого боку делать...
ну например так(только идея):

начинаешь проверять выражение, если первой в любом месте встречается закрывающая скобка, то return false. если-же первая идёт открывающая скобка ложишь её в стек. когда встречается закрывающая скобка убираешь одны скобку из стека. если в конце выражения стек пустой - значить скобки раставленны корректно, если стек не пуст, значить ошибка при расстановки скобок.
__________________
reality.sys corrupt
Kernel panic - not syncing:
Fatal exception
halt life(y,n)?
Warchief вне форума  
Старый 08.02.2008, 11:43     # 8
Voland25
Junior Member
 
Регистрация: 28.11.2003
Адрес: Израиль
Пол: Male
Сообщения: 67

Voland25 МолодецVoland25 МолодецVoland25 Молодец
я порой просто поражаюсь, до какой степени можно недосказать условие
Походу очень напоминает то, что называется "польским выражением" (черт его знает, как звучит этот термин по-русски )
Пример прост: выражение (a*b) записывается как *(ab), т.е. оператор сначала, потом в скобках - все операнды в порядке действия...

Warchief, это не совсем то, мне кажется ... то что описано в твоем посте - это алгоритм проверки правильности расстановки скобок, а, судя по всему, человеку нужны все варианты расстановки скобок в выражении, т.е. если имеем A*B/C+D-E*F, то как один из вариантов может быть A*B/(C+D)-E*F...

Добрый Дядя, прочитай, пожалуйста, внимательно мой пост прямо над твоим... Задачу более детально в студию можно?!

Да, кстати... Здесь не аукцион щедрости, а люди, которые помогают другим, причем бескорыстно.. Аукцион - это звучит немного нехорошо, тебе не кажется?
__________________
"Inter arma leges silent" - "молчат законы при звоне оружия"

Последний раз редактировалось Voland25; 08.02.2008 в 11:45.
Voland25 вне форума  
Старый 13.02.2008, 22:11     # 9
Nerey_ser
Junior Member
 
Аватар для Nerey_ser
 
Регистрация: 30.03.2006
Адрес: Беларусь
Сообщения: 79

Nerey_ser Путь к славе только начался
Warchief, Voland25, прочитайте что человеку требуется. Ему требуется не проверка расстановки скобок, не вот эта запись с пред... (я не помню название, помню было 2 похожих типа - пред... и пост..., смысл в них похож), она нужна при вычислении собственно выражения.
Нужно... а фиг его знает. Смахивает на задачи типа базовых задач на которых учатся писать программы, хотя я таку впервые вижу.
Дано число N - количество сомножителей. Вывести все возможные расстаноки скобок в выражении.
Пример
Вход:
3
Выход:
(a*b)*c
(a*b*c)
a*(b*c)
((a*b)*c)
(a*(b*c))
__________________
Дай человеку рыбу - он будет сыт один день. Научи человека рыбачить - он будет сыт всю жизнь.
Nerey_ser вне форума  

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 22:19.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.