ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1910. Руины титанов: сокрытый вход

Помигите понять ошибки
Послано Romanchillihotpepper 18 май 2021 23:09
#include<iostream>
int main()
{
    int32_t a,c=0,c1=0,d=0;
    std::cin>>a;
    int32_t b[a];
    for(int g=0;g<a;g++){
        std::cin>>b[g];
    }
    for(int g=1;g<a-1;g++){
        c=b[g-1]+b[g]+b[g+1];
        if(c>c1) {c1=c;d=g+1;}
    }
    std::cout<<c1<<" "<<d;
    }
У меня код не выдает ошибок на моем Кодеблоке, тут же выдает следующее:
solution(6): error C2131: expression did not evaluate to a constant
solution(6): note: failure was caused by a read of a variable outside its lifetime
solution(6): note: see usage of 'a'
solution(8): warning C4552: '>>': result of expression not used
Re: Помигите понять ошибки
Послано Savchuk Nickolay 22 май 2021 16:54
Дело в том, что запись "int32_t b[a];" не стоит использовать, когда в квадратных скобках стоит переменная, которая вводится с клавиатуры (не является константой). Для этого нужно использовать запись "int32_t* b= new int32_t [a];", попробуйте заменить в шестой строке.