- 1
for (int i=0, N=sizeof(a)/sizeof(int); ++i<N-1; s+=(int)(a[i]>a[i-1]&&a[i]>a[i+1]));
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+146
for (int i=0, N=sizeof(a)/sizeof(int); ++i<N-1; s+=(int)(a[i]>a[i-1]&&a[i]>a[i+1]));
Это говнокод или годный троллинг? Топик http://forum.codenet.ru/threads/69046-Помогите-задача-С/
2. N=sizeof(a)/sizeof(int) - так не надо делать.
3. Границы диапазона?
2. почему?
3. что границы?
было бы правильнее.. только тогда это уже не однострочник будет
2. Лучше sizeof(a)/sizeof(a[0]). А ещё лучше - vector.
3. a[0]>a[1]?
2. о каком векторе речь, если вы здесь С++ не увидели? про размер первого эл-та согласен.
а что с границами? i-1 за границы не вылезает (так как ++i в условии, а for реализуется в цикл с предусловием), i+1 тоже не вылезает, так как <N-1.. и код компилится и работает, кстати))
но как было сказано выше, случай
int a[] = {1, 0, 0, 0, 0, 1};
не обрабатывается никак