надо представить в виде шаблона(
1) количество отрицательных элементов массива;
2) сумму модулей элементов массива, расположенных после минимального по модулю элемента.
Заменить все отрицательные элементы массива их квадратами и упорядочить элементы массива по возрастанию.
вот мой вариант , но не рабочий...
Код:
//Лабораторная работа 8_1
//laba1
#include "iostream"
#include "iomanip"
#include "cmath"
using namespace std;
template <class T> T vvod (T mass[100],int ke)
{
for (int i = 0; i < ke; i++)
{
cin >> mass [i];
}
for (int i = 0; i < ke; i++)
{
cout<<setw(5)<<mass[i];
}
cout<<endl;
return 1;
}
template <class T> T otr(T mass[100],int ke,int koe=0)
{
for (int i=0; i<ke; i++)
if (mass[i]<0)
koe++;
cout<<"Количество отрицательных элементов массива = "<<koe<<endl;
cout<<endl;
return 0;
}
template <class T> T summa1(T mass[100],int ke,int summa=0)
{
int i;
int n_min=0;
float summa=0;
for (int i=1; i<ke; i++)
if ( fabs(mass[i]))< fabs(mass[0]))
n_min=i;
if (n_min==ke-1)
cout<<"Минимальный по модулю элемент последний.\n";
else
{
for (int i=(n_min+1); i<ke; i++)
summa+=fabs(mass[i]));
cout<<"Сумма модулей элементов после минимального по модулю = "<<summa<<endl;
cout<<endl;
}
return 0;
}
template <class T> T zamena(T mass[100],int ke)
{
for (int i=0; i<ke; i++)
if (mass[i]<0)
mass[i]=mass[i]*mass[i];
return 0;
}
template <class T> T sortirovka(T mass[100],int ke)
{
double k;
for (int i=0; i<(ke-1); i++)
{
for (int j=i+1; j<ke; j++)
{
if (mass[i] > mass[j])
{
k=mass[i];
mass[i]=mass[j];
mass[j]=k;
}
}
}
cout<<"Отсортированный массив:\n";
for (int i=0; i<ke; i++)
cout << mass[i] << ' ';
cout<<endl;
return 0;
}
int main()
{
int array[100];
int ke,koe=0,summa=0;
cout<<"Vvedite kolichestvo jelementov massiva =";
cin>>ke;
vvod(array,ke);
otr(array,ke,koe);
summa1(array,ke,summa);
sortirovka(array,ke);
system("pause");
return 0;
}
//laba1
#include "iostream"
#include "iomanip"
#include "cmath"
using namespace std;
template <class T> T vvod (T mass[100],int ke)
{
for (int i = 0; i < ke; i++)
{
cin >> mass [i];
}
for (int i = 0; i < ke; i++)
{
cout<<setw(5)<<mass[i];
}
cout<<endl;
return 1;
}
template <class T> T otr(T mass[100],int ke,int koe=0)
{
for (int i=0; i<ke; i++)
if (mass[i]<0)
koe++;
cout<<"Количество отрицательных элементов массива = "<<koe<<endl;
cout<<endl;
return 0;
}
template <class T> T summa1(T mass[100],int ke,int summa=0)
{
int i;
int n_min=0;
float summa=0;
for (int i=1; i<ke; i++)
if ( fabs(mass[i]))< fabs(mass[0]))
n_min=i;
if (n_min==ke-1)
cout<<"Минимальный по модулю элемент последний.\n";
else
{
for (int i=(n_min+1); i<ke; i++)
summa+=fabs(mass[i]));
cout<<"Сумма модулей элементов после минимального по модулю = "<<summa<<endl;
cout<<endl;
}
return 0;
}
template <class T> T zamena(T mass[100],int ke)
{
for (int i=0; i<ke; i++)
if (mass[i]<0)
mass[i]=mass[i]*mass[i];
return 0;
}
template <class T> T sortirovka(T mass[100],int ke)
{
double k;
for (int i=0; i<(ke-1); i++)
{
for (int j=i+1; j<ke; j++)
{
if (mass[i] > mass[j])
{
k=mass[i];
mass[i]=mass[j];
mass[j]=k;
}
}
}
cout<<"Отсортированный массив:\n";
for (int i=0; i<ke; i++)
cout << mass[i] << ' ';
cout<<endl;
return 0;
}
int main()
{
int array[100];
int ke,koe=0,summa=0;
cout<<"Vvedite kolichestvo jelementov massiva =";
cin>>ke;
vvod(array,ke);
otr(array,ke,koe);
summa1(array,ke,summa);
sortirovka(array,ke);
system("pause");
return 0;
}