1 / 1 / 1
Регистрация: 06.01.2013
Сообщений: 266
|
||||||
1 | ||||||
сумма элементов матрицы04.09.2013, 15:25. Показов 14607. Ответов 18
Метки нет (Все метки)
С клавиатуры вводится размерность целочисленной матрицы,затем сама матрица.Найти сумму всех элементов.Разрешается при этом использовать только один оператор цикла(кроме цикла ввода матрицы).
Вот сделала эту задачу,правильно ли?или нельзя было еще одно For использовать? Код:
0
|
04.09.2013, 15:25 | |
Ответы с готовыми решениями:
18
Определить длину вектора Х, если х1 - сумма элементов матрицы A, х2 - сумма элементов матрицы B, х3 - сумма С Максимальная сумма элементов строки / минимальная сумма элементов столбца матрицы Удалить из матрицы A все строки, сумма элементов которых четна, а из матрицы B – строки, сумма элементов которых нечетна(функции) Для заданной матрицы размера NхN найти такие k и n, что сумма элементов k- столбца матрицы совпадает с суммой элементов n- го строки |
859 / 448 / 112
Регистрация: 06.07.2013
Сообщений: 1,491
|
||||||
04.09.2013, 15:43 | 2 | |||||
с одним значит с одним)
вот это у вас зачем, когда вы используете матриицу a[20][20]
0
|
1 / 1 / 1
Регистрация: 06.01.2013
Сообщений: 266
|
|
04.09.2013, 15:45 [ТС] | 3 |
а можете объяснить как так получается?
Добавлено через 1 минуту значит a[20][20] вообще не надо?
0
|
859 / 448 / 112
Регистрация: 06.07.2013
Сообщений: 1,491
|
|
04.09.2013, 15:50 | 4 |
ну вот например у нас матрица 5 на 5, заметим, что нумерация начинается с [0][0]
i, например = 6 , тогда строка будет равна (y = i / w = 6 / 5 = 1 (с учетом сокращения из за int) ) столбец (x = i - y * w = 6 - 1*5 = 1) и попали на a[1][1]. Короче говоря i бегает слева направо от верхней строки к нижней Добавлено через 1 минуту ну в задании написано сделать матрицу, значит именно a и нужно использовать, только размер у вас 20 на 20 ,а нужно как я понял задавать его с клавиатуры
0
|
1 / 1 / 1
Регистрация: 06.01.2013
Сообщений: 266
|
|
04.09.2013, 15:54 [ТС] | 5 |
но если это убрать,то уже не будет работать
0
|
859 / 448 / 112
Регистрация: 06.07.2013
Сообщений: 1,491
|
|
04.09.2013, 15:56 | 6 |
вот у вас тут создается массив A размером [N * M] а дальше вы продолжаете использовать a вместо нового созданного "A"
нужно что то одно тогда уж или "a" переделывать или использовать массив(не матрицу, хотя в принципе рассматривать как матрицу абстрактно можно) "A"
0
|
1 / 1 / 1
Регистрация: 06.01.2013
Сообщений: 266
|
|
04.09.2013, 16:02 [ТС] | 7 |
cin>>A[i][j];опять что то не так?программа не работает
0
|
859 / 448 / 112
Регистрация: 06.07.2013
Сообщений: 1,491
|
|
04.09.2013, 16:05 | 8 |
если использовать с двойными скобками, то и создавать нужно 2-х-мерный массив
int **A; A = new int*[M] for(int i = 0 ; i < M ; ++i) A[i] = new int[N];
0
|
1 / 1 / 1
Регистрация: 06.01.2013
Сообщений: 266
|
|
04.09.2013, 16:08 [ТС] | 9 |
а как по другому сделать,что бы A=new int [N*M];сохранилось?
0
|
859 / 448 / 112
Регистрация: 06.07.2013
Сообщений: 1,491
|
||||||
04.09.2013, 16:18 | 10 | |||||
0
|
1 / 1 / 1
Регистрация: 06.01.2013
Сообщений: 266
|
||||||
04.09.2013, 16:33 [ТС] | 11 | |||||
Что же опять не так?
0
|
859 / 448 / 112
Регистрация: 06.07.2013
Сообщений: 1,491
|
|
04.09.2013, 16:35 | 12 |
0
|
1 / 1 / 1
Регистрация: 06.01.2013
Сообщений: 266
|
|
04.09.2013, 16:41 [ТС] | 13 |
теперь выводит матрицу в строчку
0
|
859 / 448 / 112
Регистрация: 06.07.2013
Сообщений: 1,491
|
||||||
04.09.2013, 16:55 | 14 | |||||
вместо
так
1
|
1 / 1 / 1
Регистрация: 06.01.2013
Сообщений: 266
|
|
04.09.2013, 17:02 [ТС] | 15 |
cout<<A[i*M+j]<<"\t";как это объяснить?как теперь накопление суммы происходит?
0
|
859 / 448 / 112
Регистрация: 06.07.2013
Сообщений: 1,491
|
|
04.09.2013, 17:18 | 16 |
0
|
1 / 1 / 1
Регистрация: 06.01.2013
Сообщений: 266
|
|
04.09.2013, 17:21 [ТС] | 17 |
то есть здесь A[i] индекс i уже не означает номер строки?а что здесь такое считает cout<<A[i*M+j]<<"\t";?
0
|
859 / 448 / 112
Регистрация: 06.07.2013
Сообщений: 1,491
|
||||||
04.09.2013, 17:34 | 18 | |||||
ага, здесь мы прогоняем цикл для всей матрицы (до i = M*N), матрицу A[N][M] мы вытянули в строку(массив) A[N*M] для работы с 1 циклом, это строка как бы составлена из маленьких строк матрицы в одну большую, по этому пройдясь от i = 0 до i = M*N мы пробегаем по всей матрице
i*M+j - где М-ширина матрицы - формула для вычисления индекса в массиве A[M*N] как если бы он был бы матрицей A[M][N]
1
|
1 / 1 / 1
Регистрация: 06.01.2013
Сообщений: 266
|
|
04.09.2013, 17:41 [ТС] | 19 |
спасибо большое
0
|
04.09.2013, 17:41 | |
04.09.2013, 17:41 | |
Помогаю со студенческими работами здесь
19
Вычислить F=(Sn+So)/(Sn-So), где Sn - сумма положительных элементов в нечетных строках матрицы Y(9x12), а So - сумма отр Выполнить сортировку элементов в той строке матрицы сумма элементов в которой максимальная Для матрицы найти такие k и n, что сумма элементов k-столбца совпадает с суммой элементов n-й строки Если сумма индексов каких-либо двух элементов матрицы, расположенных ниже главной диагонали, равна минимальному элементу матрицы, то.. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |