Не могу найти ошибку
1. Минимальный по модулю элемент массива.
2. Сумму модулей элементов массива, расположенных после первого элемента, равного нулю.
Преобразовать массив таким образом, чтобы в первой его половине расположились элементы, стоящие в чётных позициях, а во второй половине – элементы стоявшие в нечётных позициях.
Собственно проблема в том что когда вводишь деситичные дроби программа берёт только целую часть как для вычисления суммы так и для нахождения минимального
например если вводить элементы : 3 5 3 0.5 3 5 0 8
программа выдаёт что 0.5 наименьший элемент
аналогично при сумме если после 0 например 7 3.4 сумма получается 10
cpp
Код:
#include <iostream.h>
#include <conio.h>
#include <math.h>
int main()
{
clrscr();
int n;
cout<<"vvedite koli4estvo elementov";cin>>n;
int i;
int ineg;
float sum;float *a=new float [n];
int imin;
cout<<"vvedite elementi=\n";
int k=0;
int m=n/2;
for(i = 0; i < n; i++)cin>>a[i];
for(i = 0; i < n; i++)cout<<a[i]<<' ';
for(i = 0; i < n; i++) if (a[i]==0) ineg=i;
for(sum=0,i=ineg+1;i<n;i++) sum+=abs(a[i]);
if(int(ineg==0)) cout<<"net 0-vix eleventov";
else
cout<<endl<<"summa "<<sum;
for( i=ineg=0;i<n;i++) {
if(abs(a[i]) < abs(a[imin])) imin=i;}
cout<<"\n\t i min="<<(a[imin]);
cout<<endl ;
float *b = new float[n];
for(i=0;i<n;i++)
{
if(int(i)%2==0)
{b[m]=a[i];m++;}
else
{b[k]=a[i];k++; }
}
for(i=0;i<n;i++)
{cout<<b[i]<<" ";}
cout<<endl;
getch();
return 0;
}