Войти

Показать полную графическую версию : Подсчет суммы положительных элементов массива


antoiiika
18-11-2011, 23:02
В одномерном целочисленном массиве (размер массива (не больше 20) и значения его элементов вводить с клавиатуры) вычислить:4. Сумму элементов массива, расположенных между первым и последним положительными элементами.

#include <stdio.h>
#include <iostream.h>
#include <conio.h>
void main()

{

int a[20],n,i,j,h,sum=0;

cout<<"\t Razmernost massiva(<=20):";

cin>>n;

cout<<"\n\tMassiv A:"<<endl;

for(i=0;i<n;i++)

{

cout<<"\t a["<<i+1<<"]=";

cin>>a[i];

}

for(i=0;i<n;i++)
{
if(a[i]==0)

j=i;
break;
}
for(i=j+1;i<n;i++)
{
if(a[i]==0)

h=i;
break;
}

for(i=j+1;i<h;i++)
{sum+=a[i];
}

cout<<"\nSumma="<<sum<<endl;
cout <<"\nPress any key ... "<< endl;
getch();
}

tier_skg
19-11-2011, 00:33
for(i=j+1;i<h;i++)
{
sum=a[i]+sum;
}



- это бесконечный цикл. Все из за условия i>h . не знаю что за место этого ставить надо, скорей i>n. А вообще можно поконкретнее условие?

Delirium
19-11-2011, 05:20
Первый вариант решения:
3 цикла:
первый от нуля до последнего - проверяем, если число положительное, запоминаем индекс числа.
Второй цикл - от последнего до найденного индекса+1. Также ищем индекс положительного.
Третий цикл - от первого до второго индекса - считаем сумму элементов.

второй вариант решения:
заводим переменную суммы
один цикл от 0 до последнего элемента
проверяем, если текущий элемент положительный, прибавляем к переменной.

В чем сложность?

P.S. Учимся правильно задавать тему вопроса. В след. раз при несоблюдении требований тема будет перемещена в тест-форум.




© OSzone.net 2001-2012