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

объединенная матрица - C++

Восстановить пароль Регистрация
 
AksIoMa
 Аватар для AksIoMa
0 / 0 / 0
Регистрация: 26.02.2011
Сообщений: 31
18.06.2012, 21:18     объединенная матрица #1
помогите найти ошибку в программе

#include <cstdlib>
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;

int main()
{double ka,kb,tempa,tempb;
int n=0;
int i=0;
int j=0;
int p;
int m;
bool flag=false;
int e=2;
int s=0;
char str;
double m1;
ifstream in_num;
ifstream in_num1;
in_num1.open ("inputnum.txt");
while (!in_num1.eof())
{in_num1>>m1;
n++;
}
while (!in_num1.eof())
{in_num1>>str;
m=(int)str;
if ((m==47)||(m<45)||(m>57))
flag=true;
}
in_num1.close();
if (flag==true)
{
cout << "Incorrect input";
system("PAUSE");
return EXIT_SUCCESS;
}
in_num1.close();
m=0;
n=n/2;
while (n>0)
{n=n-e;
e=e+2;
m++;
}
n=m;
m++;
m=m*2;
double a[n][m];
double c[n*2];
in_num.open ("inputnum.txt");
while (!in_num.eof())
{if (j<m)
{in_num>>a[i][j];
in_num>>a[i][j+1];
j+=2;
}
else
{j=0;
i++;
}
}
in_num.close();
for (i=0;i<n-1;i++)
{for (j=0;j<n;j++)
{if (j!=i)
ka=(a[j][s]*a[i][s]+a[j][s+1]*a[i][s+1])/(a[i][s]*a[i][s]+a[i][s+1]*a[i][s+1]);
kb=(a[i][s]*a[j][s+1]-a[i][s+1]*a[j][s])/(a[i][s]*a[i][s]+a[i][s+1]*a[i][s+1]);
for (p=0;p<m;p+=2)
{tempa=ka*a[i][p]-kb*a[i][p+1];
tempb=ka*a[i][p+1]+kb*a[i][p];
a[j][p]=a[j][p]-tempa;
a[j][p+1]=a[j][p+1]-tempb;
}
}
s+=2;
}
s=0;
for (i=0;i<n;i++)
{c[s]=(a[i][m-2]*a[i][s]+a[i][m-1]*a[i][s+1])/(a[i][s]*a[i][s]+a[i][s+1]*a[i][s+1]);
c[s+1]=(a[i][s]*a[i][m-1]-a[i][s+1]*a[i][m-2])/(a[i][s]*a[i][s]+a[i][s+1]*a[i][s+1]);
s+=2;
}
for (i=0;i<m-2;i+=2)
cout<<"x"<<i/2+1<<"="<<c[i]<<"+"<<c[i+1]<<"i"<<'\n';

system("PAUSE");
return EXIT_SUCCESS;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2012, 21:18     объединенная матрица
Посмотрите здесь:

C++ матрица
матрица C++
Матрица C++
матрица C++
Матрица C++
Матрица C++
C++ Матрица.
Матрица С++ C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,154
Завершенные тесты: 1
18.06.2012, 21:23     объединенная матрица #2
Основная ошибка, в объявлениях
double a[n][m];
double c[n*2];
n и m не константы.
С-но массивы надо создавать динамически,
или использовать максимально допустимые размеры
C++
1
2
3
4
const int NMAX=100;
const int MMAX=100;
double a[NMAX][MMAX];
double c[NMAX*2];
tomaticus
 Аватар для tomaticus
46 / 46 / 2
Регистрация: 02.01.2011
Сообщений: 505
18.06.2012, 21:32     объединенная матрица #3
Используйте, пожалуйста, теги.
Yandex
Объявления
18.06.2012, 21:32     объединенная матрица
Ответ Создать тему
Опции темы

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