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

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

Войти
Регистрация
Восстановить пароль
 
besbyblik
1 / 1 / 0
Регистрация: 25.12.2010
Сообщений: 77
#1

матрица - C++

29.12.2010, 14:34. Просмотров 388. Ответов 9
Метки нет (Все метки)

дана действительная матрица размера mxn.Определить числа b1...bm,соответственно значениям средних арифметических элементов строк.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.12.2010, 14:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос матрица (C++):

дана квадратичная матрица z[n][n]. составить программу, которая если матрица симметричная(транспонированная матрица равна исходной), сделает ее не сим - C++
помогите пожалуйста. условие: дана квадратичная матрица z. составить программу, которая если матрица симметричная(транспонированная...

Дана матрица целых чисел, из n строк и n столбцов (n < = 100).Определить является ли матрица нулевой (состоит из одних нулей) - C++
#include &lt;iostream.h&gt; #include &lt;iomanip.h&gt; #include&lt;conio.h&gt; void main() { int mas; int N; int max_element; int...

Дана матрица целых чисел, из n строк и n столбцов (n < = 100).Определить является ли матрица нулевой (состоит из одних нулей) - C++
#include &lt;iostream.h&gt; #include &lt;iomanip.h&gt; #include &lt;stdlib.h&gt; int main(int argc, char* argv) { srand(time(NULL)); int mas; ...

Даны квадратная матрица A порядка n и вектор с n элементами. Получить вектор: (A=E)b, где E единичная матрица порядка n - C++
Даны квадратная матрица A порядка n и вектор с n элементами. Получить вектор: (A=E)b, где E-единичная матрица порядка n. Помогите...

Определить базовый класс "Матрица" и класс-потомок "Треугольная матрица" - C++
Нужно определить класс &quot;матрица&quot; с возможностью динамического выделения и освобождения памяти, наполнения матрицы, сохранения и чтения из...

Матрица - C++
Здоров всем. Как реализовать задачу? Сформировать и распечатать квадратную матрицу A(15,15) следующего вида: ...

9
MILAN
886 / 780 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
29.12.2010, 15:47 #2
Цитата Сообщение от besbyblik Посмотреть сообщение
дана действительная матрица размера mxn.Определить числа b1...bm,соответственно значениям средних арифметических элементов строк.
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
46
#include <iostream>
#include <ctime>
 
using namespace std;
 
int main() 
{ 
      srand(static_cast<int>(time(NULL)));
      int **mat;
      int M,N;
      double sum=0; 
      cout<<"Enter number rows -> ";
      cin>>M;
      mat=new int*[M];
      cout<<"Enter number cols -> ";
      cin>>N;
      cout<<"Matrix: "<<endl;
       for(int i=0; i<M; i++)
        {
           mat[i]=new int[N];
            for(int j=0; j<N; j++)
            {
                mat[i][j]=rand()%40;
                cout<<mat[i][j]<<"  ";
            }
          cout<<endl;
        }
      cout<<"Result: "<<endl;
       for(int i=0; i<M; i++)
       {
           sum=0;
           for(int j=0; j<N; j++)
           {
               sum+=mat[i][j];
           }
         cout.precision(4);
         cout<<sum/N<<"  ";
       }
      for(int i=0; i<M; i++)
      {
          delete mat[i];
      }
      delete [] mat;
     system("pause");
     return 0;
}
1
Алексaндр
131 / 108 / 5
Регистрация: 04.12.2010
Сообщений: 313
29.12.2010, 16:08 #3
Цитата Сообщение от MILAN Посмотреть сообщение
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
46
#include <iostream>
#include <ctime>
 
using namespace std;
 
int main() 
{ 
      srand(static_cast<int>(time(NULL)));
      int **mat;
      int M,N;
      double sum=0; 
      cout<<"Enter number rows -> ";
      cin>>M;
      mat=new int*[M];
      cout<<"Enter number cols -> ";
      cin>>N;
      cout<<"Matrix: "<<endl;
       for(int i=0; i<M; i++)
        {
           mat[i]=new int[N];
            for(int j=0; j<N; j++)
            {
                mat[i][j]=rand()%40;
                cout<<mat[i][j]<<"  ";
            }
          cout<<endl;
        }
      cout<<"Result: "<<endl;
       for(int i=0; i<M; i++)
       {
           sum=0;
           for(int j=0; j<N; j++)
           {
               sum+=mat[i][j];
           }
         cout.precision(4);
         cout<<sum/N<<"  ";
       }
      for(int i=0; i<M; i++)
      {
          delete mat[i];
      }
      delete [] mat;
     system("pause");
     return 0;
}


Думаю, тип матрицы нужно сменить на double или float... Ведь элементы могут быть не целыми, а действительными...
1
besbyblik
1 / 1 / 0
Регистрация: 25.12.2010
Сообщений: 77
29.12.2010, 16:15  [ТС] #4
а где же среднее арифметическое выводит?

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
// casha.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#define n 4
#define m 3
using namespace std;
 
void main(){
int i,j;
int s=0;
int B[m],a[n];
int Matr[m][n];
cout<<"Введите элементы матрицы построчно"<<endl;
for (i=0;i<m;i++){
for (j=0;j<n;j++){
cin>>Matr[i][j];
s=s+a[j];
}
B[i]=s/n;
 
}
cout<<"Результат:";
for (i=0;i<m;i++){
cout<<"B["<<i+1<<"]="<<B[i];
}
}

но чето здесь не правильно мусор выводит
0
Алексaндр
131 / 108 / 5
Регистрация: 04.12.2010
Сообщений: 313
29.12.2010, 16:28 #5
1) Ты n и m не вводишь в коде (cin>>m>>n. Циклы не проходят так, как надо.
2) Лучше объяви массивы и s так
C++
1
2
3
double s=0;
double B[m],a[n];
double Matr[m][n];
Тогда более то4но будет...

Добавлено через 4 минуты
Цитата Сообщение от besbyblik Посмотреть сообщение
s=s+a[j];
Тут s=s+Matr[i][j];

И в вывод добавь переход на новую строку.
C++
1
2
3
for (i=0;i<m;i++){
cout<<"B["<<i+1<<"] = "<<B[i]<<"\n";
}
0
besbyblik
1 / 1 / 0
Регистрация: 25.12.2010
Сообщений: 77
29.12.2010, 16:34  [ТС] #6
Тут s=s+Matr[i][j];
почему так?
если сказано сумма строк,а не всей матрицы.
можно как то без этого s=s+Matr[i][j]; обойтись а как то по другому?
0
Алексaндр
131 / 108 / 5
Регистрация: 04.12.2010
Сообщений: 313
29.12.2010, 16:44 #7
Зачем? Нужно только так. Мы проходим по строке, и сумму элементов делим на ихнее количество.
Кстати, ещё одна грубая ошибка.
После B[i]=s/n; обязательно нужно обнулять значение сумы!

C++
1
2
B[i]=s/n;
s=0;
0
MILAN
886 / 780 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
29.12.2010, 16:49 #8
besbyblik, чем вам мой вариант не нравится?
0
besbyblik
1 / 1 / 0
Регистрация: 25.12.2010
Сообщений: 77
29.12.2010, 16:50  [ТС] #9
а потом столбцы удалять нужно.да?
0
Алексaндр
131 / 108 / 5
Регистрация: 04.12.2010
Сообщений: 313
29.12.2010, 16:57 #10
Да ну зачем удалять?
Вводим количество строк и столбцов в матрице, потом - саму матрицу.
Мы прошли по первой строке, вычеслили сумму её элементов и поделили на количество. Вывели среднее арифметическое, сумму обнулили.
Потом на следующую строку перешли, то же самое сделали. И так до конца матрицы.
И всё )
0
29.12.2010, 16:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2010, 16:57
Привет! Вот еще темы с ответами:

Матрица - C++
Помогите в решении примера! Пожалуйста:) Задана квадратная матрица порядка n. Обнулить все елементы, сума индексов которых есть парным...

Матрица... - C++
Ни в какую не могу понять... как в борланде решить задачку... На делфи могу написать а в борланде хоть убейте ни в какую... Ктонить...

матрица - C++
доброго времени суток. помогите пожалуйста. ЗАДАНИЕ вот такое: * прочесть из файла матрицу A(n*n). Вычислить произведение...

матрица...( - C++
Вычислить средние значения строк матрицы и выбрать значение,наиболее близкое к заданному числу. Взяла матрицу 2*3, числа целые от 0 до...


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

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

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