|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.12.2011, 00:38 | #1 |
Пользователь
Регистрация: 22.05.2010
Сообщений: 15
|
Никак не пойму: НЕКОТОРЫЕ элементы массива НЕ меняют ЗНАЧЕНИЕ!
Пытаюсь сделать треугольную матрицу(занулить эл-ты под главной диаганалью путем последовательного вычитания строк).
Всё отлично зануляется, а саму главную диагональ и остальные элементы строк оставляет не тронутыми! ПОЧЕМУ? #include<stdio.h> int main() { int code[100],key[100][100],m,l,i,j; printf("Input rank of key\n"); scanf("%d",&m); printf("Input the key\n"); for(i=0;i<m;i++) { for(j=0;j<m;j++) scanf("%d",&key[i][j]); } printf("The key:\n"); for(i=0;i<m;i++) { for(j=0;j<m;j++) printf("%d\t",key[i][j]); printf("\n"); } for(l=0;l<m-1;l++) { for(i=l+1;i<m;i++) { for(j=0;j<m;j++) key[i][j]-=key[l][j]*key[i][l]/key[l][l]; } } printf("The new key:\n"); for(i=0;i<m;i++) { for(j=0;j<m;j++) printf("%d\t",key[i][j]); printf("\n"); } return 0; } Последний раз редактировалось TheKostarico; 08.12.2011 в 21:36. |
08.12.2011, 21:42 | #2 |
Пользователь
Регистрация: 22.05.2010
Сообщений: 15
|
Когда записываю результат в новый массив,изменяются все элементы, кроме res[m][m].
Кто-нибудь может объяснить это старнное явление?? for(l=0;l<m-1;l++) { for(i=l+1;i<m;i++) { for(j=0;j<m;j++) res[i][j]=key[i][j]-key[l][j]*key[i][l]/key[l][l]; } } Последний раз редактировалось TheKostarico; 08.12.2011 в 23:16. |
08.12.2011, 22:15 | #3 | ||
Форумчанин
Регистрация: 16.09.2011
Сообщений: 114
|
Тут ты пишешь
Цитата:
Цитата:
У меня делает верхнетреугольную матрицу. |
||
08.12.2011, 23:22 | #4 |
Пользователь
Регистрация: 22.05.2010
Сообщений: 15
|
в консоли выходит, например, при m=3, произвольно заполнив массив, следующее:
The key: 1 2 3 4 5 6 7 8 9 The new key: 1 2 3 0 5 6 0 0 9 |
08.12.2011, 23:34 | #5 |
Пользователь
Регистрация: 22.05.2010
Сообщений: 15
|
Да, получается верхнетреугольная матрица. Но вычитание я провожу со всеми элементами строки, а изменяются(обращаются в нуль) только стоящие под главной диаганалью.
Вот чтобы понятно: из каждого элемента 2-ой строки вычитаются соответствующие элементы 1-ой, умноженные на key[1][0]/key[0][0]. Так вот изменяется в данной строке лишь key[1][0], который зануляется, а остальные - это key[1][1] key[1][2] - не изменяются, из них не вычитаются соответственно key[0][1] key[0][2], умноженные на key[1][0]/key[0][0] !!!! Либо в ячейку памяти не перезаписывается! Вот что я имел в виду! Последний раз редактировалось TheKostarico; 08.12.2011 в 23:40. |
09.12.2011, 00:01 | #6 |
Форумчанин
Регистрация: 16.09.2011
Сообщений: 114
|
Косяк тут
Код:
|
10.12.2011, 00:24 | #7 |
Пользователь
Регистрация: 22.05.2010
Сообщений: 15
|
Спасибо) Теперь понял!!!
|
10.12.2011, 01:04 | #8 |
Форумчанин
Регистрация: 16.09.2011
Сообщений: 114
|
Хорошо! И еще совет: пиши код "лесенкой", чтобы было видно логические блоки в программе. Если не для себя, то хоть когда вопрос задаешь. А то я когда посмотрел твой код, мне сразу расхотелось в нем разбираться. Хорошо что его(кода) было не много, а то может и не стал бы смотреть.
Да и самому искать ошибки и разбираться в алгоритме будет гораздо легче. Вот тебе пример, если не знаешь как: Код:
|
11.12.2011, 20:53 | #9 |
Пользователь
Регистрация: 22.05.2010
Сообщений: 15
|
Я просто не понимал до недавнего времени, вроде копирую текст с исходника, где всё по блокам и с отступами, а отправляю - всё в столбик.
Теперь понял, что программу нужно заключать в "#" |
11.05.2014, 18:31 | #10 |
Регистрация: 11.05.2014
Сообщений: 6
|
Не могу понять все-таки в чем ошибка.Как исправить код?
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Определитель матрицы | Rekky | Свободное общение | 10 | 24.05.2011 20:40 |
Задание с курсовой.программа для решения дифференциальных уравнений произвольного порядка. | saydmc | Помощь студентам | 5 | 29.12.2010 23:10 |
Определитель матрицы | Snake_ua | Помощь студентам | 7 | 10.02.2010 10:44 |
Матрицы:функция изменения порядка столбцов матрицы | Fajyz | Помощь студентам | 0 | 13.01.2010 09:40 |