1)Количество положительных элементов массива
2)Сумму элементов массива, расположенных после последного нулевого элемента
Сначала надо преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых не превышает 1, а затем все остальные.
Я программу написал, но она неправильно считает кол-во элементов, расположенных после последнего нулевого элемента.Всегда выводится значение 0.Если в цикле
Код
for(i=i+1;i<n;i++) summa=summa+a[i];
вместо начального значения i=i+1 написать например i=5, то всё правильно считается.Подскажите как это исправить?Программа:
Код
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void main()
{
const int n=10;
int a[n],i,x,m=0;
printf("\nIsxodnii massiv\n");
randomize();
for (i=0;i<n;i++)
{
a[i]=random(10)-5;
printf("%3d",a[i]);
}
for (i=0;i<n;i++)
{
if (a[i]<=1)
{
x=a[m];
a[m]=a[i];
a[i]=x;
m++;
}
}
printf("\nPreobrazovannii massiv\n");
for (i=0;i<n;i++) printf("%3d",a[i]);
int pol=0;
for(i=0;i<n;i++)
if (a[i]>=0) pol++;
printf("\nKol-vo polozhitelnix elementov=%d",pol);
int summa=0;
for(i=n;i>0;i--)
{
if (a[i]==0)
{
for(i=i+1;i<n;i++) summa=summa+a[i];
printf("\nSumma elementov posle poslednego nulevogo elementa=%d",summa);
return;
}
}
}