Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
Я Олень
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 142
1

Вывести матрицу B и из этой матрицы В вычесть единичную матрицу А

09.06.2013, 11:23. Просмотров 1073. Ответов 5
Метки нет (Все метки)

Задание такое, нужно вывести матрицу B размером n*n, и из этой матрицы В вычесть единичную матрицу А.
я решил вывести на экран сначала единичную матрицу А и квадратную матрицу В. При нажатии Ctrl+F9 выводит единичную матрицу и дает ввести матрицу B самостоятельно, начинаю вводить,цифра не появляется,а сверху экрана,где пишется адрес документа добавляется слово Inactive и дальше адрес C:\Borlandc\...
вот текст программы, сто пудняк тут что-нибудь не верно, но я решил познавать свои ошибки методом тыка, так как времени разбираться совсем нет(универ такой универ)
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
#include<conio.h>
#include<stdio.h>
#define n 3
void main()
{
            int a[n][n],B[n][n];
            int i,j,jm,im;
            for(i=0;i<n;i++)
            {
                      for(j=0;j<n;j++)
                                if(i==j)
                                 {
                                          printf("1 ");
                                  }
                                  else
                                 {
                                          printf("0  ");
                                  }
                      printf("\n");
             }
              printf("matrix B[%i][%i]:\n",n,n);
              for(i=0;i<n;i++)
                         for(j=0;j<n;j++)
                                  scanf("%5.2f ",&B[i][j]);
getch();
}
прошу посмотреть программу и помочь с вычитанием из исходной В единичной матрицы А
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2013, 11:23
Ответы с готовыми решениями:

Дано матрицу A (3,4). Вывести номера столбцов и строк, где находится третий и пятый парные элементы этой матрицы
Дано матрицу A (3,4). Вывести номера столбцов и строк, где находится третий и...

Вычесть из каждого столбца матрицы максимальный элемент для каждого столбца, и результат вывести в матрицу
Что нужно добавить , чтобы вычесть из каждого столбца матрицы максимальный...

Сформировать единичную матрицу заданного размера, в динамической памяти
Ребята помогите пожалуйста Написать программу, формирующую единичную матрицу,...

Как при помощи жордановых преобразований получить единичную матрицу?
Добрый вечер! Не могу придумать алгоритм, необходимый для двойственного...

Если у диагонали этой матрицы находится обратный элемент , то матрицу транспонировать
Дана матрица 3х3. Если у диагонали этой матрицы находится обратный элемент , то...

5
Leshak
259 / 235 / 160
Регистрация: 10.12.2011
Сообщений: 513
09.06.2013, 14:03 2
Как такового вычитания нет в матрицах. Есть сложение и умножение. Чтобы вычесть матрицу B от матрицы А достаточно матрицу B домножить на (-1), и потом сложить две матрицы. Вот вам и вычитание, или же короткий экскурс в линейную алгебру.

В данном же случае надо просто от элементов главной диагонали матрицы B вычесть 1.

Не совсем конечно понял, но вы не целые значение записываете в целочисленный массив. Вполне возможна и ошибка. Хотя я могу быть и не прав. Причуды С давно уже так не помню
Теперь ещё такой момент, а обязательно ли вводить единичную матрицу?)
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
#include<conio.h>
#include<stdio.h>
#define n 3
void main()
{
            int E[n][n],B[n][n];
            int i,j,jm,im;
            /*for(i=0;i<n;i++)
            {
                      for(j=0;j<n;j++)
                  {
                                if(i==j) { E[i][j] = 1; printf("%d",a[i][j]," "); } else { E[i][j] = 0; printf("%d",a[i][j]," "); }
                  }  
                   printf("\n");
             }*/
              printf("Вводим матрицу B[3][3]:\n%d");
              for(i=0;i<n;i++){
                        for(j=0;j<n;j++){
                        scanf("%d",&B[i][j]);
                        printf("%d",&B[i][j]," ");
                     }
                   printf("\n");
               }
               printf("Вычтем единичную матрицу из матрицы B:\n");
               for(i=0;i<n;i++)
                      for(j=0;j<n;j++)
                      if ( i == j ) B[i][j] -= 1;/*из элементов главной диагонали вычитаем 1*/
getch();
}
За вами вывод .
1
Я Олень
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 142
09.06.2013, 14:41  [ТС] 3
он мне выдал 14 ошибок :/

Добавлено через 40 секунд
Leshak, ошибкиииии
0
Я Олень
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 142
09.06.2013, 14:46  [ТС] 4
точнее 13
0
Миниатюры
Вывести матрицу B и из этой матрицы В вычесть единичную матрицу А  
Leshak
259 / 235 / 160
Регистрация: 10.12.2011
Сообщений: 513
09.06.2013, 15:33 5
Писал на Visual C++ 2010. За ошибки извиняюсь ) писал же от руки , и на наличие ошибок ( синтаксических и вычислительных) результат не проверял. Мне было важно чтоб вы идею уловили.
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
#include"stdafx.h"
#include<conio.h>
#include <iostream>
 
int main()
{    
        setlocale( LC_ALL,"Russian" );
        const int n = 3;
            int B[n][n];
            int i, j;
              printf("Вводим матрицу B[3][3]:\n");
              for(i=0;i<n;i++)
                        for(j=0;j<n;j++)
                        scanf("%d",&B[i][j]);
                        
              
                        
                printf("Матрица B:\n");    
                for(i=0;i<n;i++){
                        for(j=0;j<n;j++)
                            printf("%d ",B[i][j]);
                            printf("\n");
                }
               
               printf("\nВычтем единичную матрицу из матрицы B:\n");
               for(i=0;i<n;i++)
                  for(j=0;j<n;j++)
                     if ( i == j ) B[i][j] -= 1;/*из элементов главной диагонали вычитаем 1*/
 
               printf("\n");
               for(i=0;i<n;i++){
                        for(j=0;j<n;j++)
                            printf("%d ",B[i][j]);
                            printf("\n");
                }
getch();
return 0;
}
1
Я Олень
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 142
09.06.2013, 16:13  [ТС] 6
Leshak, спасибо спасибо спасиииибо)
но я тут посидел попарился,но додумался и все исправил
0
09.06.2013, 16:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2013, 16:13

Непонятно условие задачи: Вывести исходную матрицу, преобразованную матрицу и вектор Х.
Здравствуйте, помогите пожалуйста понять, что от меня хотят в этом условии:...

Ввести с клавиатуры матрицу размерностью M x N. Вывести исходную матрицу, номер строки или столбца с заданны
Условие: Столбец с минимальным произведением всех нечетных элементов....

Как в этой программе правильно вывести матрицу? а то она у меня "пляшет"
Как в этой программе правильно вывести матрицу? а то она у меня &quot;пляшет&quot;....


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

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

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