Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Подсчет суммы положительных элементов массива (http://forum.oszone.net/showthread.php?t=220881)

antoiiika 18-11-2011 23:02 1798305

Подсчет суммы положительных элементов массива
 
В одномерном целочисленном массиве (размер массива (не больше 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 1798387

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



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

Delirium 19-11-2011 05:20 1798493

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

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

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

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


Время: 03:11.

Время: 03:11.
© OSzone.net 2001-