![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
Neonig |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 25 Пол: Мужской Репутация: ![]() ![]() ![]() |
Здравствуйте.
Есть задание - получить транспонированную матрицу через хитрый такой алгоритм, но суть сейчас не в получении этой матрицы, а в реадизации одной из составляющих алгоритма - суммированию всех столбцов и нахождению наибольшей сумму. Суть в том, что я делаю некий цикл который должен в массив заносить сумму из полученных заранее индексов каждого столба в одномерном массиве, но он считает только один столбец, когда же я пытаюсь перевести его на суммирование каждого столбца и занесение значений в массив - вылетают несуразные ошибки, ассемблерные листинги и прочее ... поясните пожалуйста где я допустил оплошность... #include <stdio.h> |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
CodeGuard говорит, что вылетает твоя программа по банальной причине: ты память выделить-то выделил, а вернуть? Не вернул... Это первое...
Второе: в функции max_func исправь квалификатор с %d на %s - будешь получать нормальную строку, а не тот бред что ты получаешь сейчас: printf("%s ", "Our matrix for mx by j:"); // #2 Еще одно: там же, есть у тебя строка: for(count_one = 0; count_one = 2; count_one +=1) она должна выглядеть так? Пока у тебя вместо условия окончания стоит присваивание... Наверно, все-таки неплохо было бы условие окончания определить? А вообще непонятно, зачем ты выделяешь память под main_deag? У тебя же этот указатель - локальный, и что это будет? Просто утечка... Сообщение отредактировано: volvo - 9.10.2007 21:03 |
Гость |
![]()
Сообщение
#3
|
Гость ![]() |
Понял, и исправил, сам не могу теперь понять чего я пытался добиться этим услвоием, но как исправил его все заработало.... Можно вопрос более теретический - как перемножить две матрицы если они представлены в виде одномерных массивов, т.е. чисто нал исте бумаги я это предсатвил и закономерность увидел, но возможно есть известный способов и даже этот теоретический я не сильн понимаю как реализовать. Надеюсь на советы профессионалов... (не готовые программы, хотя если таковые имеются только благодарен, а на советы)
|
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Ну, если 2 матрицы (заданные в виде двухмерных массивов) перемножаются так:
for i = 1 to row_1 |
Neonig |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Пользователи Сообщений: 25 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот так реализовал, а что-то выдает результаты не те - перепроверил - вроди ве верно...гляньтепожалуйста на функцию умножения
int* matrix_eqw(int* matrix_one, int* matrix_two) |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Уверен в этом коде:
Цитата for(count_three = 0; count_two <= matrix_size; count_two +=1) |
Neonig |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 25 Пол: Мужской Репутация: ![]() ![]() ![]() |
Не то чтобы уерен, просто у нас на лекции такая вот формула была выписана - я старался ей соответствовать
Цитата for(i=0;i<Nx-1;i++) for(k=0;k<Nz-1;k++) for(j=0;j<Ny-1;j++) C[i][k]+=A[i][j]*B[j][k]; ошибки исправил, пытаюсь перемножить матрицы 1 1 0 1 и 1 1 0 1 получаю 2 2 1 0 извените за мои скромные познания в алгебре, но разве это правильно? Сообщение отредактировано: Neonig - 16.10.2007 20:21 |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Цитата неверный цикл исправил, но ошибка осталась Значит, плохо исправил... Вот так нет никакой ошибки:int *mult_matrix(int *A, int *B) { Цитата разве это правильно? Нет, неправильно... Правильно будет 1 2 0 1 Сообщение отредактировано: volvo - 16.10.2007 20:46 |
![]() ![]() |
![]() |
Текстовая версия | 20.06.2025 13:56 |