Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Я Олень
 Аватар для Я Олень
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 142
09.06.2013, 11:23     Вывести матрицу B и из этой матрицы В вычесть единичную матрицу А #1
Задание такое, нужно вывести матрицу 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();
}
прошу посмотреть программу и помочь с вычитанием из исходной В единичной матрицы А
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2013, 11:23     Вывести матрицу B и из этой матрицы В вычесть единичную матрицу А
Посмотрите здесь:

Даны матрицы А(5,5), B(5,5). Вывести на печать матрицу 2*А-3*B. C++
C++ Дано матрицу A (3,4). Вывести номера столбцов и строк, где находится третий и пятый парные элементы этой матрицы
Транспонировать квадратную матрицу, используя только оператор for. Новой матрицы не создавать. Вывести исходную и транспониро-ванную матрицы C++
Если у диагонали этой матрицы находится обратный элемент , то матрицу транспонировать C++
C++ Непонятно условие задачи: Вывести исходную матрицу, преобразованную матрицу и вектор Х.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Leshak
259 / 235 / 40
Регистрация: 10.12.2011
Сообщений: 513
09.06.2013, 14:03     Вывести матрицу B и из этой матрицы В вычесть единичную матрицу А #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();
}
За вами вывод .
Я Олень
 Аватар для Я Олень
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 142
09.06.2013, 14:41  [ТС]     Вывести матрицу B и из этой матрицы В вычесть единичную матрицу А #3
он мне выдал 14 ошибок :/

Добавлено через 40 секунд
Leshak, ошибкиииии
Я Олень
 Аватар для Я Олень
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 142
09.06.2013, 14:46  [ТС]     Вывести матрицу B и из этой матрицы В вычесть единичную матрицу А #4
точнее 13
Миниатюры
Вывести матрицу B и из этой матрицы В вычесть единичную матрицу А  
Leshak
259 / 235 / 40
Регистрация: 10.12.2011
Сообщений: 513
09.06.2013, 15:33     Вывести матрицу B и из этой матрицы В вычесть единичную матрицу А #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;
}
Я Олень
 Аватар для Я Олень
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 142
09.06.2013, 16:13  [ТС]     Вывести матрицу B и из этой матрицы В вычесть единичную матрицу А #6
Leshak, спасибо спасибо спасиииибо)
но я тут посидел попарился,но додумался и все исправил
Yandex
Объявления
09.06.2013, 16:13     Вывести матрицу B и из этой матрицы В вычесть единичную матрицу А
Ответ Создать тему
Опции темы

Текущее время: 08:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru