Форум программистов, компьютерный форум, киберфорум Visual C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 11.10.2011
Сообщений: 15
1

Работа с матрицей. Помогите исправить ошибки.

17.10.2011, 18:57. Показов 404. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Еще раз привет всем, есть задание:
Дана матрица размера nxn (самостоятельно выбрать размерность и заполнить программно).
Вычислить ранг матрицы. Распечатать саму матрицу по строкам и значение ранга.

И вообщем программа написана, но есть пара ошибок неизвестного происхождения.
1) Матрица приводится к ступенчатому виду не всегда. Т.е. нулевая строка образуется не всегда
2) При приведении к ступенчатому виду, в нулевой строке матрицы вместо нуля бывает -0 или -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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include "stdafx.h"
#include <iostream.h>
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<stdlib.h>
#include <time.h>
#define NN 6
int main()
{
    srand(time(NULL));
 float a[NN][NN];
 bool key = true;
int i,j,h,pls,n,h1,k=0,t;
h1=0;
cout<<"Vvedite razmernost"<<endl;
cin>>n;
    for(i=0;i<n;i++)
for(j=0;j<n;j++)
//cin>>a[i][j];
a[i][j]=1+rand()%5;
//--------Вывод сгенерированной матрицы-----//
for(i=0;i<n;i++)
{
for(j=0;j<n;j++) 
cout<<a[i][j]<<" ";
cout<<endl;
}
//---<Подсчет ранга>----/
for (i = 0; i < n; ++i)
for (k=i+1;k<n; k++)
{
  double deli =a[k][i] / a[i][i];
 
for(j=0; j<n; j++)
{
       double matr = a[k][j];
double   perem = (deli * a[i][j]);
                 a[k][j] = matr - perem;
}
}
cout<<endl;
cout<<endl;
int jj=j;
int ii=i;
for(ii=0;ii<n;ii++)
{
    for(jj=0;jj<n;jj++)
    
printf("%2.0f\t",a[ii][jj]);
printf("\n\n");
}
for ( i=0; i<n; ++i)
{
  for ( j=0; j<n; ++j)
pls=a[i][j];
  if(pls<0)
      pls=pls*(-1);
      
      h=h+pls;
                if (h==0)
               h1=h1+1;
                else
                    h=0;
}
int rang =0;
rang =n-h1;
 
cout <<"rang = "<< rang << "\n";
cout <<"\n";
return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.10.2011, 18:57
Ответы с готовыми решениями:

Работа с матрицей - исправить ошибки в коде
работать не хочет... вылетает после 35 строки.(компилит нормально) как быть друзья? #include...

Работа с текстовым файлом, помогите исправить ошибки в программе
Анкета содержит сведения в виде: фамилия, имя, отчество, величина зарплаты, стаж работы, количество...

Исправить ошибки в коде с динамической матрицей
Здравствуйте! Помогите разобраться с кодом, вроде всё правильно сделал, но что-то не хочет...

Исправить код (работа с матрицей)
Дана целочисленная матрица Aij i=1...n;j=1..n , n&lt;=100. Если в матрице нет строк с нулевой суммой...

0
17.10.2011, 18:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.10.2011, 18:57
Помогаю со студенческими работами здесь

Работа с матрицей через процедуры - исправить код
почему не работает? объясните program f; uses crt; type matrix = array of...

помогите исправить ошибки!
Дано кольцо с внешним радиусом R1 и внутренним радиусом R2. Определить, попадает ли в кольцо точка...

Помогите исправить ошибки
помогите исправить ошибки .model small .data summand_1 db ? N = $ - summand_1...

Помогите исправить ошибки
Долго искал в интернетах как сменить steam id в nosteam и вот нашёл, тему где описывался процесс, и...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru