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

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

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

Матрица - C++

03.05.2010, 13:01. Просмотров 724. Ответов 14
Метки нет (Все метки)

Помогите написать программу, которая считывает из файла матрицу А размерами n*n, выводит её на экран и находит индекс первого элемента, равного нулю, на главной диагонали.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2010, 13:01     Матрица
Посмотрите здесь:

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

Дана квадратная матрица А порядка n. Проверьте, является ли матрица единичной - Delphi
Дана квадратная матрица А порядка n. Проверьте, является ли матрица единичной. Описать с помощью функций и процедур. Ввод-вывод в текстовый...

Дана квадратная матрица А порядка n. Проверить, является ли матрица единичной. - Turbo Pascal
Ребят,помогите решить задачу "Дана квадратная матрица А порядка n. Проверить, является ли матрица единичной"

Как доказать то, что матрица и транспонированная ей матрица имеют одинаковые собственные числа? - Алгебра
Как доказать то, что матрица и транспонированная ей матрица имеют одинаковые собственные числа с одинаковой кратностью? Добавлено...

Матрица:Даны натуральное число n, действительная матрица размера n х 9. Найти среднее арифметическое: каждого - QBasic
Даны натуральное число n, действительная матрица размера n х 9. Найти среднее арифметическое: каждого из столбцов.

Непонятки с DirectX (матрица поворота, камера, матрица проекции) - DirectX
Возник вопрос по DirectX, точнее по матрицам Вопрос 1: D3DXMATRIXA16 matWorld; UINT iTime = timeGetTime() % 10000; ...

Матрица:Даны натуральное число n, действительная матрица размера n х 9. Найти среднее арифметическое: каждого из столбцов - Free Pascal
Даны натуральное число n, действительная матрица размера n х 9. Найти среднее арифметическое: каждого из столбцов.

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vet
175 / 175 / 13
Регистрация: 08.04.2009
Сообщений: 1,309
03.05.2010, 14:16     Матрица #2
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
#include<iostream>
#include <fstream>
using namespace std;
ifstream in("11.txt");
 
int main()
{
    int**a= new int*[10];
for(int i=0;i<10;i++)
a[i]=new int[10]; 
 
while(in)
{
         for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
in>> a[i][j];
     }                      
}
}
 
for(int i=0;i<10;i++){
        for(int j=0;j<10;j++){ 
             cout << a[i][j] << " ";
             }
             cout << "\n";
             }
for(int i=0;i<10;i++){ 
                    
          if(a[i][i]==0) {cout << "\n\n" << "Index = " << i << "\n"; break;  }
          }
             
             cin.get();
}
Stanislava
1 / 1 / 0
Регистрация: 03.05.2010
Сообщений: 23
03.05.2010, 18:23  [ТС]     Матрица #3
программа выдаёт ошибку :fatal error C1010: unexpected end of file while looking for precompiled header directive, что это значит?
Genius Ignat
1235 / 773 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
03.05.2010, 18:29     Матрица #4
#include "stdafx.h"
Stanislava
1 / 1 / 0
Регистрация: 03.05.2010
Сообщений: 23
03.05.2010, 18:33  [ТС]     Матрица #5
Вставляю #include "stdafx.h" , появляется ещё две ошибки:
D:\123\123.cpp(26) : error C2374: 'i' : redefinition; multiple initialization
D:\123\123.cpp(11) : see declaration of 'i'
D:\123\123.cpp(34) : error C2374: 'i' : redefinition; multiple initialization
D:\123\123.cpp(11) : see declaration of 'i'
D:\123\123.cpp(44) : warning C4508: 'main' : function should return a value; 'void' return type assumed
Error executing cl.exe.

123.exe - 2 error(s), 1 warning(s)
Genius Ignat
1235 / 773 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
03.05.2010, 18:38     Матрица #6
C++
1
for(int i=0;i<10;i++)
C++
1
for(int i=0;i<10;i++)
Потому как int i ты переопределяешь: они находятся в одной области видимости,
у Vet компилятор считает что int i виден только в теле цикла, потому int i в примере vet
не мешают друг другу.

Сделай следующее:
в первом цикле так и оставь:
C++
1
for(int i=0;i<10;i++)
А в остальных напиши
C++
1
for(i=0;i<10;i++)
return 0; не забудь поставить в конце функции main
Stanislava
1 / 1 / 0
Регистрация: 03.05.2010
Сообщений: 23
03.05.2010, 19:06  [ТС]     Матрица #7
Большое спасибо)

Добавлено через 24 минуты
И последний вопрос программа выдаёт такой результат:
Матрица
Это правильно???
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
03.05.2010, 19:25     Матрица #8
Stanislava, Какая красивая киска.
Нет, это неправильно.
Stanislava
1 / 1 / 0
Регистрация: 03.05.2010
Сообщений: 23
03.05.2010, 19:27  [ТС]     Матрица #9
это значит программа написана не правильно???(((
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
03.05.2010, 19:32     Матрица #10
Stanislava, Алгоритм вроде верный.
Stanislava
1 / 1 / 0
Регистрация: 03.05.2010
Сообщений: 23
03.05.2010, 19:39  [ТС]     Матрица #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 <stdafx.h> 
#include<iostream>
#include <fstream>
using namespace std;
ifstream in("11.txt");
 
int main()
{
    int**a= new int*[10];
 
    for(int i=0;i<10;i++)
 
        a[i]=new int[10];
    
    while(in)
 
    {
         for( i=0;i<10;i++)
         {
             for(int j=0;j<10;j++)
             {
                 in>> a[i][j];
             }                      
         }
    }
    for( i=0;i<10;i++)
    {
        for(int j=0;j<10;j++)
        { 
             cout << a[i][j] << " ";
        }
             cout << "\n";
    }
    for( i=0;i<10;i++)
    { 
                    
          if(a[i][i]==0) 
          {
              cout << "\n\n" << "Index = " << i << "\n"; break; 
          }
     }
             
             cin.get();
             return 0;
}
Genius Ignat
1235 / 773 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
03.05.2010, 19:45     Матрица #12
Я думаю просто в файл "11.txt" нужного записать информацию с помощью ofstream:
записать в файл 11.txt какую-нибудь матрицу.
Stanislava
1 / 1 / 0
Регистрация: 03.05.2010
Сообщений: 23
03.05.2010, 19:50  [ТС]     Матрица #13
я и записываю матрицу...а программа выдаёт одно и тоже, даже при изменении чисел...
easybudda
Эксперт С++
9458 / 5471 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
03.05.2010, 20:11     Матрица #14
Stanislava, вот Вам работающая програмка
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 <fstream>
 
// Файл matrix.txt должен содержать достаточное количество чисел
 
int main(){
    const char *FILE_NAME = "matrix.txt";
    const int SIZE = 5;
    int m[SIZE][SIZE], i, j;
 
    std::ifstream ifs(FILE_NAME);
    if ( ! ifs.is_open() ){
        std::cerr << "Can't open input file!" << std::endl;
        return 1;
    }
 
    for ( i = 0; i < SIZE; ++i ){
        for ( j = 0; j < SIZE; ++j ){
            ifs >> m[i][j];
            if ( ifs.bad() ){
                std::cerr << "Can't read from file!" << std::endl;
                return 1;
            }
        }
    }
    ifs.close();
 
    std::cout << "Matrix:" << std::endl;
    for ( i = 0; i < SIZE; ++i ){
        for ( j = 0; j < SIZE; ++j ){
            std::cout << std::setw(4) << m[i][j];
        }
        std::cout << std::endl;
    }
 
    for ( i = 0; i < SIZE && m[i][i]; ++i )
        ;
    if ( i == SIZE )
        std::cout << "No zero elements on main diagonal." << std::endl;
    else
        std::cout << "First zero value has " << ( i + 1 ) << " element on main diagonal" << std::endl;
 
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2010, 22:21     Матрица
Еще ссылки по теме:

Дана матрица целых чисел, из 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; ...

Дана матрица целых чисел, из 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...

Матрица В-транспонированная матрица А. Вывести матрицу В - Visual Basic
Дана матрица целых чисел А, состоящая из М строк и N столбцов Матрица В-транспонированная матрица А. Вывести матрицу В

Доказать, что матрица P идемпотентна. Показать, что матрица I = 2P - E инволютивна - MathCAD
Матрица P называется идемпотентной, если P2 = P. Матрица I называется инволютивной, если I2 = E.

Доказать, что матрица P идемпотентна. Показать, что матрица I = 2P - E инволютивна - Matlab
Очень нужна помощь первый раз использую matlab


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

Или воспользуйтесь поиском по форуму:
Stanislava
1 / 1 / 0
Регистрация: 03.05.2010
Сообщений: 23
03.05.2010, 22:21  [ТС]     Матрица #15
Спасибо!
Yandex
Объявления
03.05.2010, 22:21     Матрица
Ответ Создать тему
Опции темы

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