ENG  RUSTimus Online Judge
Online Judge
Problems
Authors
Online contests
About Online Judge
Frequently asked questions
Site news
Webboard
Links
Problem set
Submit solution
Judge status
Guide
Register
Update your info
Authors ranklist
Current contest
Scheduled contests
Past contests
Rules
back to board

Discussion of Problem 1910. Titan Ruins: Hidden Entrance

Помигите понять ошибки
Posted by Romanchillihotpepper 18 May 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: Помигите понять ошибки
Posted by Savchuk Nickolay 22 May 2021 16:54
Дело в том, что запись "int32_t b[a];" не стоит использовать, когда в квадратных скобках стоит переменная, которая вводится с клавиатуры (не является константой). Для этого нужно использовать запись "int32_t* b= new int32_t [a];", попробуйте заменить в шестой строке.