В одномерном массиве, состоящем из 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;
}
А чего ты i не увеличиваешь?
while (i<max) // <--- Здесь - ты работаешь с индексом !!!
{
if (a[i]>0)
s=s+a[i];
i++; // <-- Здесь увеличивать i
}
> А чего ты 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;
}
i = 0 перед циклом тоже забыл?
чего же ты сам не посмотришь? (всего-то отладчиком по циклу пройтись)