Снова здравствуйте)Вопрос с работой со строчками и столбцами в массиве.Пишу эту прогу довольно долгое время)по настроению)
Код:
#include <iostream>
using namespace std;
int main ()
{
int n, k, st,sv ;
int i = 0, j = 0;
double **mas;
setlocale (LC_CTYPE, "rus");
cout << "Введите количесво строк массива(к-во у-й): ";
cin >> st; //Число строк
n=st+1;
cout <<"Введите количесво столбцов массива(к-во х): ";
cin >>sv; //Число столбцов
k=sv+n;
mas = new double*[n]; //Выделение памяти под n-строк
for(i = 0; i < n; i++)
{
mas[i] = new double[k]; //Выделение памяти для каждой строки по k-столбцов
}
for(i = 0; i < n; i++)
{
if (i<n-1)
cout <<"Введите коэффициенты(значения базисных переменных,свободные члены) "<<i+1<<" -го ур-ия"<<endl;
else
cout <<"Введите целевую функцию с ОТРИЦАТЕЛЬНЫМ ЗНАКОМ: "<<endl;
for(j = 0; j < k; j++)
{
cout<< "mas["<< i<< "][" <<j <<"]="; //Ввод массива
cin>> mas[i][j];
}
}
//вывод массива
cout<<endl;
cout<<endl<<"***********************************"<<endl;
cout<<" Таблица: "<<endl;
int min;
for(i = 0; i < n; i++)
{
for(j = 0; j < k; j++)
{
cout<< " "<<mas[i][j]<<" ";
}
cout<<" "<<endl;
}
cout<<endl<<"***********************************"<<endl;
// поиск минимального
min = 0;
for (j = 1; j < sv; j++)
if (mas[n-1][j] < mas[n-1][min]) min = j;
cout << " этот столбец ведущий "<<mas[n-1][min] << endl;
int t;
t=mas[n-1][min];
// поиск столбца
cout<<endl<<"***********************************"<<endl;
int myn = 0;
for (i= 1; i < st; i++)
if ((mas[i][k-1])<(mas[myn][k-1])) myn=i;
cout << "эта строка ведущая "<<mas[myn][k-1]<< endl;
cout<<endl<<"***********************************"<<endl;
cout <<"коэффицент"<<mas[myn][min]<<endl;
//деление на выбранный элемент
for (j = 0; j < k; j++)
{
mas[myn][j]=mas[myn][j]/mas[myn][min]; //???не могу понять почему делит не всю строку до конца
cout <<mas[myn][j];
}
cout<<endl;
//вывод массива
cout<<endl<<"***********************************"<<endl;
cout<<endl;
for(i = 0; i < n; i++)
{
for(j = 0; j < k; j++)
{
cout<< " "<<mas[i][j]<<" ";
}
cout<<" "<<endl;
}
//из элеметов соответствующих строк вычитаем элементы найденной нам строки
//??почему делит только одну строчку какую-нибудь (преимущественно вторую)
cout<<endl<<"***********************************"<<endl;
for(i = 0; i < myn; i++)
{
for(j = 0; j < k; j++)
{
mas[i][j]=mas[i][j]-mas[myn][j]*mas[i][min];
cout<< " "<<mas[i][j]<<" ";
}
}
//вывод массива
cout<<endl<<"***********************************"<<endl;
cout<<endl;
for(i = 0; i < n; i++)
{
for(j = 0; j < k; j++)
{
cout<< " "<<mas[i][j]<<" ";
}
cout<<" "<<endl;
}
system ("pause");
return 0;
}
У меня вопросы в проге..Запуталась ,почему работает не со всей строчкой до конца(Помогите разобраться,пожалуйста)