Помощь - Поиск - Пользователи - Календарь
Полная версия: Одномерные массивы
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Другие языки
Desktop 3
В одномерном массиве, состоящем из n вещественых елементов, вычислить:
- сумму положительных элементов массива, расположеных до максимального элемента.


#include <conio.h>
#include <iostream.h>
int main() {

int a[5]={1,8,-4,-3,14};

   int s=0;
   int max=0;
   int i;

// Находим максимальный элемент
   for (i=1;i<5;i++)
	{
	if (a[i]>a[max]) max=i;
	}

// Сумма положительных чисел до макс. элемента
   while (a[i]<max)
	{
	if (a[i]>0)
	s=s+a[i];
	}


  cout<<"Сумма положительных элементов до максимального элемента"<<s<<endl;

  getch();
  return 0;
}



Нечего не выводит... Не могу понять где ошибка.
volvo
А чего ты i не увеличиваешь?


   while (i<max) // <--- Здесь - ты работаешь с индексом !!!
    {
    if (a[i]>0)
    s=s+a[i];
    i++; // <-- Здесь увеличивать i
    }

? У тебя "вечный" цикл...
Desktop 3
> А чего ты i не увеличиваешь?
> ? У тебя "вечный" цикл...
да вот про это забыл

Уже не циклит. Но все ровно не работает.
Выводить:
Сумма положительных элементов до максимального элемента = 0

Хотя должно выводить что сума 9.


#include <conio.h>
#include <iostream.h>
int main() {

int a[5]={1,8,-4,-3,14};

   int s=0;
   int max=0;
   int i;

// Находим максимальный элемент
   for (i=1;i<5;i++)
	{
	if (a[i]>a[max]) max=i;
	}

// Сумма положительных чисел до макс. элемента
   while (i<max) {
	if (a[i]>0)
	s=s+a[i];
	i++;
	}


  cout<<"Сумма положительных элементов до максимального элемента = "<<s<<endl;

  getch();
  return 0;
}

volvo
i = 0 перед циклом тоже забыл? wink.gif
Atos
чего же ты сам не посмотришь? (всего-то отладчиком по циклу пройтись)
Desktop 3
Цитата(volvo @ 18.10.2006 14:44) *

i = 0 перед циклом тоже забыл? wink.gif


Да rolleyes.gif

Спасибо, теперь работает good.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.