У меня получилось сделать что б оно считало по основнйо матрице, но пи етом оно не сортирует ее, вот в чем проблема. Подскажите, Как решить.
#include "stdafx.h"
#include <windows.h>
#include <conio.h>
#include <iostream>
#include "stdio.h"
using namespace std;
int main(){
setlocale(LC_ALL, "Russian");
int **mas, n, m, i, j, j1, temp, temp1, sum;
bool fl;
cout << "Введите количество строк матрицы: " << endl;
cin >> n;
if (n<0) cout << ("Ошибка") << endl;
else
cout << ("\nВведите количество столбцов матрицы: ") << endl;
cin >> m;
if (m<0) cout << ("Ошибка") << endl;
mas = new int*[n];
for (i = 0; i<n; i++)
mas[i] = new int[m];
cout << ("\nВведите элементы матрицы: ") << endl;
for (i = 0; i<n; i++)
for (j = 0; j<m; j++)
{
cout << "[" << i + 1 << "][" << j + 1 << "]= ";
cin >> mas[i][j];
}
cout << ("\nИсходная матрица") << endl;
for (i = 0; i<n; i++)
{
for (j = 0; j<m; j++)
{
cout.width(4);
cout << mas[i][j];
}
cout << endl;
}
for (j = 0; j<m - 1; j++)
for (j1 = 0; j1<m - 1 - j; j1++)
{
temp1 = temp = 0;
for (i = 0; i<n; i++)
{
if (mas[i][j1]<0 && abs(mas[i][j1]) % 2 == 1)
temp += abs(mas[i][j1]);
if (mas[i][j1 + 1]<0 && abs(mas[i][j1 + 1]) % 2 == 1)
temp1 += abs(mas[i][j1 + 1]);
}
if (temp>temp1)
for (i = 0; i<n; i++)
{
temp = mas[i][j1];
mas[i][j1] = mas[i][j1 + 1];
mas[i][j1 + 1] = temp;
}
}
cout << ("\nПолученная матрица") << endl;
for (i = 0; i<n; i++)
{
for (j = 0; j<m; j++)
{
cout.width(4);
cout << mas[i][j];
}
cout << endl;
}
cout << endl;
for (i = 0; i<m; i++)
{
sum = 0;
fl = true;
for (j = 0; j<n; j++)
{
sum += mas[j][i];
if (mas[j][i]<0)
fl = false;
}
cout << ("в столбце ") << i + 1;
if (!fl)
cout << (" есть орицательный элемент и сумма его элементов равна ") << sum << endl;
else
cout << (" нет отрицательного элемента") << endl;
}
cout << endl;
system("pause");
return 0;
}
Другие языки программирования и технологии
Подскажите как переделать что б оно считало суму отрицательньіх елементво основной матрицьі, а не отсортированой? C++
Динамическое создание мы умеем делать, а ф-иями походу так и не научились пользоваться. .
Тяжеловато так смотреть твой листинг как бэ
АХахах MSVS 2012 при попытки скомпилировать то, что ты накодил, просто оплевалась с сообщение ошибок более 100... я заканчиваю. . .
интересно что такое тут =)
Тяжеловато так смотреть твой листинг как бэ
АХахах MSVS 2012 при попытки скомпилировать то, что ты накодил, просто оплевалась с сообщение ошибок более 100... я заканчиваю. . .
интересно что такое тут =)
Дима Погожий
VS2013, все работает (спецом скопировал сей код туда)
Разбей на функции.
Или примерно таким образом:
#include<iostream>
using namespace std;
int main()
{
setlocale(LC_ALL,"RUS");
int i, j, n, m, k, kol, min, max, imins, jmaxs;
cout<<"Введите размерность матрицы: "; cin>>n>>m;
int **x=new int *[n];
for(i=0; i<n; i++)
x[i]=new int [m];
int *jmax=new int[n]; int *imin=new int[m];
while(true)
{
system("cls");
cout<<"МЕНЮ: \n";
cout<<"1.Ввод матрицы. \n";
cout<<"2.Найти количество отрицательных элементов в тех строках, \n которые содержат хотя бы один нулевой элемент. \n";
cout<<"3.Найти номера строк и столбцов всех седловых точек матрицы. \n";
cout<<"0.Выход. \n";
int choise; cin>>choise;
switch(choise)
{
case 1:
system("cls");
cout<<"Вводите матрицу размером "<<n<<" на "<<m<<":\n";
for(i=0; i<n; i++)
for(j=0; j<m; j++)
cin>>x[i][j];
break;
case 2:
system("cls");
kol=0;
for(i=0; i<n; i++)
{
for(j=0; j<m; j++)
{
if(!(x[i][j]!=0))
{
for(int l=0; l<n; l++)
{
if(x[i][l]<0){kol++;}
}
}
}
}
cout<<"Количество отрицательных элементов в строках с нулевыми элементами: "<<kol<<endl;
system("pause");
break;
case 3:
system("cls");
for(i=0; i<n; ++i)
{
int min=x[i][0];
for(j=1; j<m; ++j)
if (min>x[i][j]) min=x[i][j];
imin[i]=min;
}
for(j=0; j<m; ++j)
{
int max=x[0][j];
for(i=1; i<n; ++i)
if(max<x[i][j]) max=x[i][j];
jmax[j]=max;
}
cout<<"Cедловые точки матрицы: ";
for(i=0; i<n; ++i)
{
for(j=0; j<m; ++j)
{
/*if(x[i][j]==imin[i] && x[i][j]==jmax[j])
{
printf(" (%d, %d)", i, j); //cout<<"i="<<i<<" j:="<<j<<"- >"<<x[min][max]<<endl;
} */
if(jmax[j]=imin[i])
{
cout<<"i="<<imin[i]<<"/tj:="<<jmax[j]<<"- >"<<x[i][j]<<endl;
system("pause");
}
}
}
system("pause");
break;
case 0:
return 0;
break;
}
}
for(i=0; i<n; i++) delete []x[n];
}
Или примерно таким образом:
#include<iostream>
using namespace std;
int main()
{
setlocale(LC_ALL,"RUS");
int i, j, n, m, k, kol, min, max, imins, jmaxs;
cout<<"Введите размерность матрицы: "; cin>>n>>m;
int **x=new int *[n];
for(i=0; i<n; i++)
x[i]=new int [m];
int *jmax=new int[n]; int *imin=new int[m];
while(true)
{
system("cls");
cout<<"МЕНЮ: \n";
cout<<"1.Ввод матрицы. \n";
cout<<"2.Найти количество отрицательных элементов в тех строках, \n которые содержат хотя бы один нулевой элемент. \n";
cout<<"3.Найти номера строк и столбцов всех седловых точек матрицы. \n";
cout<<"0.Выход. \n";
int choise; cin>>choise;
switch(choise)
{
case 1:
system("cls");
cout<<"Вводите матрицу размером "<<n<<" на "<<m<<":\n";
for(i=0; i<n; i++)
for(j=0; j<m; j++)
cin>>x[i][j];
break;
case 2:
system("cls");
kol=0;
for(i=0; i<n; i++)
{
for(j=0; j<m; j++)
{
if(!(x[i][j]!=0))
{
for(int l=0; l<n; l++)
{
if(x[i][l]<0){kol++;}
}
}
}
}
cout<<"Количество отрицательных элементов в строках с нулевыми элементами: "<<kol<<endl;
system("pause");
break;
case 3:
system("cls");
for(i=0; i<n; ++i)
{
int min=x[i][0];
for(j=1; j<m; ++j)
if (min>x[i][j]) min=x[i][j];
imin[i]=min;
}
for(j=0; j<m; ++j)
{
int max=x[0][j];
for(i=1; i<n; ++i)
if(max<x[i][j]) max=x[i][j];
jmax[j]=max;
}
cout<<"Cедловые точки матрицы: ";
for(i=0; i<n; ++i)
{
for(j=0; j<m; ++j)
{
/*if(x[i][j]==imin[i] && x[i][j]==jmax[j])
{
printf(" (%d, %d)", i, j); //cout<<"i="<<i<<" j:="<<j<<"- >"<<x[min][max]<<endl;
} */
if(jmax[j]=imin[i])
{
cout<<"i="<<imin[i]<<"/tj:="<<jmax[j]<<"- >"<<x[i][j]<<endl;
system("pause");
}
}
}
system("pause");
break;
case 0:
return 0;
break;
}
}
for(i=0; i<n; i++) delete []x[n];
}
Похожие вопросы
- Подскажите что переделать? Подскажите что переделать, чтобы посещаемость была больше?
- Подскажи по-быстрому, есть ли разница в юзании [ ] и ElementAt() у List<> в C#? Если есть, то какая?
- В чем основные отличия C# от C++?
- Основные различия языка программирования C# от С++.
- Расскажите о основных различиях C++ и C#. Какие преимущества и недостатки у C#?
- Какие, по вашему мнению, основные недостатки у C++ ?
- какие основные отличия Java от C# (c С# я знаком)
- суму елементів масиву з парними індексами та добуток елементів з непарними індексами. Масив вводиться з клавіатури c++
- подскажите где ошибка C++
- помогите переделать программу на язык C#.