Показать сообщение отдельно

  #11  
Старый 06.02.2010, 03:09
XimiK69
Новичок
Регистрация: 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);
 
Ответить с цитированием