С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
NewUser2015
2 / 2 / 1
Регистрация: 03.11.2015
Сообщений: 60
#1

Вывести координаты элемента матрицы по формуле - C++

08.02.2016, 16:12. Просмотров 269. Ответов 6
Метки нет (Все метки)

Задание: Вывести координаты элемента матрицы с найменьшим весом по формуле
http://www.cyberforum.ru/cgi-bin/latex.cgi?{W}_{ij}= \sum_{j=1}^{m}\sum_{i=1}^{n} \left|\frac{{a}_{ij}}{i+j} \right|
Программа работает, только почему-то выдает 0. Почему так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
const int n=6, m=8;
double a [n][m];
void Koordinati() 
{
double W[n][m]; 
int i, j; 
for (i=1; i<n; i++)
for (j=1; j<m; j++)
W[i][j]+=fabs(a[i][j]/(i+j));
cout<<W[i][j]<<"   "<<endl; 
}
int main() {
    int i,j;
for (i=0; i<n; i++)
for (j=0; j<m; j++)
a[i][j] = pow(i,2)-2*tan(j);
cout<<endl<<"Matrica A"<<endl;
 
for (i=0; i<n; i++) {
cout<<endl;
for (j=0; j<m; j++)
cout<<fixed<<setprecision(3)<<a[i][j]<<" ";
}
cout<<endl<<endl<<"K = "<<endl;
Koordinati();
return 0;
}
Код
Matrica A

0.000 -3.115 4.370 0.285 -2.316 6.761 0.582 -1.743 
1.000 -2.115 5.370 1.285 -1.316 7.761 1.582 -0.743 
4.000 0.885 8.370 4.285 1.684 10.761 4.582 2.257 
9.000 5.885 13.370 9.285 6.684 15.761 9.582 7.257 
16.000 12.885 20.370 16.285 13.684 22.761 16.582 14.257 
25.000 21.885 29.370 25.285 22.684 31.761 25.582 23.257 

K = 
0.000
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2016, 16:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывести координаты элемента матрицы по формуле (C++):

Найти максимальное значение элемента матрицы, указать его координаты и подсчитать сумму строки матрицы, содержащей максимальный элемент - C++
Здраствуйте форумчане, помогите выполнить задание. Из 25 положительных, отрицательных и нулевых значений чисел сформируйте матрицу 5х5....

Определить координаты элемента матрицы с наименьшим весом - C++
Помогите, пожалуйста, новичку :scratch: Определить координаты элемента матрицы действительных чисел размером 5х7 с наименьшим весом. Вес...

Вывести координаты максимального элемента в каждой строке. - C++
Задан массив действительных чисел. Вывести координаты максимального элемента в каждой строке.

Найти координаты первого максимального элемента главной диагонали матрицы - C++
Дан двумерный массив размера N×N. Требуется найти координаты первого максимального элемента главной диагонали квадратного массива. ...

Вывести на экран координаты элементов матрицы, которые в своей строке наименьшие - C++
Помогите пожалуйста написать программу,которая выводит на экран координаты элементов двумерного массива которые в своей строке...

Определить координаты левого нижнего элемента и правого верхнего элемента в матрице - C++
Задание №18 a) Статическая память. Двумерный массив. Дан массив целых чисел. В массиве есть отрицательные числа. Определить координаты...

6
Dastan4ik
62 / 62 / 31
Регистрация: 18.10.2014
Сообщений: 187
Завершенные тесты: 2
08.02.2016, 16:27 #2
Смотри дело в формуле
Потому что вот здесь
C++
1
2
3
for (i=0; i<n; i++)
for (j=0; j<m; j++)
   a[i][j] = pow(i,2)-2*tan(j);// в начале когда i=0 то pow(0,2)=0 и j=0 то 2*tan(0)=0 и в итоге 0-0=0 вот результат
0
NewUser2015
2 / 2 / 1
Регистрация: 03.11.2015
Сообщений: 60
08.02.2016, 16:33  [ТС] #3
Dastan4ik, поменял на 1. Вот еще лучше выбило...
Код
Matrica A

0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 
0.000 -2.115 5.370 1.285 -1.316 7.761 1.582 -0.743 
0.000 0.885 8.370 4.285 1.684 10.761 4.582 2.257 
0.000 5.885 13.370 9.285 6.684 15.761 9.582 7.257 
0.000 12.885 20.370 16.285 13.684 22.761 16.582 14.257 
0.000 21.885 29.370 25.285 22.684 31.761 25.582 23.257 

K = 
0.000

еще менял на 2, 3.. результат все равно равен 0.
0
Dastan4ik
62 / 62 / 31
Регистрация: 18.10.2014
Сообщений: 187
Завершенные тесты: 2
08.02.2016, 16:46 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Как поменяли можно отрывок кода сюда?

Добавлено через 11 минут
Короче
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
const int n=6, m=8;
double a [n][m];
/* и вообще попробуйте эту функцию
void Koordinati() 
{
    double W[n][m]={}; 
int i, j; 
for (i=1; i<=n; i++)
for (j=1; j<=m; j++)
W[i-1][j-1]+=fabs(a[i-1][j-1]/(i+j));
cout<<W[i-2][j-2]<<"   "<<endl; 
}
 
*/
void Koordinati() 
{
double W[n][m]; 
int i, j; 
for (i=1; i<n; i++)//почему здесь цикл с 1 начинается 
for (j=1; j<m; j++)//и почему здесь тоже
W[i][j]+=fabs(a[i][j]/(i+j));//W[i][j] это у вас что у где его значении вы просто объявили и все кстати когда цикл //начинается с i=1 и j=1 то W[0][0] и  a[0][0] у вас пропадет
cout<<W[i][j]<<"   "<<endl; //что вы вообще выводите самый последний значение когда из цикла выходит i и j то //у вас они увеличатся на 1 
}
int main() {
    int i,j;
for (i=0; i<n; i++)
for (j=0; j<m; j++)
a[i][j] = pow(i,2)-2*tan(j);//имеется введу тут сделать
//a[i][j] = pow(i+1,2)-2*tan(j+1);//мне кажется вот так надо
 
cout<<endl<<"Matrica A"<<endl;
 
for (i=0; i<n; i++) {
cout<<endl;
for (j=0; j<m; j++)
cout<<fixed<<setprecision(3)<<a[i][j]<<" ";
}
cout<<endl<<endl<<"K = "<<endl;
Koordinati();
return 0;
}
1
NewUser2015
2 / 2 / 1
Регистрация: 03.11.2015
Сообщений: 60
08.02.2016, 16:54  [ТС] #5
Dastan4ik, а как тогда исправить? я уже понял что дело в самой подпрограмме.
а http://www.cyberforum.ru/cgi-bin/latex.cgi?{W}_{ij} я вычисляю по формуле..
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
const int n=6, m=8;
double a [n][m];
void Koordinati() 
{
double W[n][m]; 
int i, j; 
W[i][j]=0;
for (i=0; i<n; i++)//почему здесь цикл с 1 начинается 
for (j=0; j<m; j++)//и почему здесь тоже
W[i][j]+=fabs(a[i][j]/(i+j));//W[i][j] это у вас что у где его значении вы просто объявили и все кстати когда цикл //начинается с i=1 и j=1 то W[0][0] и  a[0][0] у вас пропадет
cout<<W[i][j]<<"   "<<endl; //что вы вообще выводите самый последний значит когда из цикла выходит i и j то //у вас они увеличатся на 1 
}
int main() {
    int i,j;
for (i=0; i<n; i++)
for (j=0; j<m; j++)
a[i][j] = pow(i,2)-2*tan(j);//имеется введу тут сделать
//a[i][j] = pow(i+1,2)-2*tan(j+1);//мне кажется вот так надо
 
cout<<endl<<"Matrica A"<<endl;
 
for (i=0; i<n; i++) {
cout<<endl;
for (j=0; j<m; j++)
cout<<fixed<<setprecision(3)<<a[i][j]<<" ";
}
cout<<endl<<endl<<"K = "<<endl;
Koordinati();
return 0;
}
0
Dastan4ik
62 / 62 / 31
Регистрация: 18.10.2014
Сообщений: 187
Завершенные тесты: 2
08.02.2016, 16:56 #6
C++
1
2
3
4
5
6
7
8
9
10
  
void Koordinati() 
{
double W[n][m]={}; 
int i, j; 
for (i=1; i<=n; i++)
for (j=1; j<=m; j++)
W[i-1][j-1]+=fabs(a[i-1][j-1]/(i+j));
cout<<W[i-2][j-2]<<"   "<<endl; 
}
замените функцию я же выше дал рабочий код
0
NewUser2015
2 / 2 / 1
Регистрация: 03.11.2015
Сообщений: 60
08.02.2016, 17:01  [ТС] #7
Dastan4ik, о, спасибо большое!! теперь К = 3,543 )
0
08.02.2016, 17:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.02.2016, 17:01
Привет! Вот еще темы с ответами:

Даны координаты точек х1, у1, ... х15, у15. Если точка попадает на плоскость, ограниченную кругом x2 + y2 = R2 - вывести ее координаты - C++
Лабораторная работа 5. Одномерные массивы * * Для задач этого раздела необходимо составить графический алгоритм, провести...

Вывести индекс элемента в конце каждой строки матрицы - C++
Самый маленький элемент - 10 , его индекс - 2, как это записать с помощью циклов , не могу вывести именно индекс элемента в конце каждой...

Вывести индексы максимального элемента (матрицы, отрицательные числа) - C++
Привет всем, помогите пожалуйста подготовиться к экзамену по информитикы)) 1. Базы данных и СУБД. Понятие реляционной базы данных. ...

Найти в первой строчки матрицы элементы равные 1 и вывести номер элемента - C++
Что надо исправить?? for ( i = 0; i &lt; N; i ++ ) for ( j = 0; j &lt; M; j ++ ) { if (T==1)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.