
06.02.2010, 03:09
|
|
Новичок
Регистрация: 02.01.2010
Сообщений: 26
С нами:
8608173
Репутация:
15
|
|
Сообщение от becensed
с++ не люблю. Вот тебе на Си (алгоритм простой, перепишешь, если что)
Код:
#include <stdio.h>
#include <math.h>
#define n 10
int summ(int a[])
{
int result = 0;
for (int i=0; i<=n; i++)
{
if(a[i] < 0)
{
result = abs(a[i+1]) + abs(a[i+2]);
break;
}
}
return result;
}
void main()
{
int a[n] = {1,5,11,-5,2,-1,3,2,9,-2};
printf("Summa = %d", summ(a));
}
//EOF
примерно так.
Не понял твой код, а если отрицательное число стоит в конце массива? То ты своим условием
Код:
abs(a[i+1]) + abs(a[i+2]);
выйдешь за границы массива. Попробуй на этом контр примере запустить программу
Код:
int a[n] = {1,5,11,5,2,1,3,2,9,-2};
И зачем определять n, если можно так
Код:
int n = sizeof(a)/sizeof(int);
|
|
|