20 БАЛЛОВНайти и разъяснить оплошности, допущенные в программке (Ошибоктри). int main()int

20 БАЛЛОВ
Отыскать и разъяснить оплошности, допущенные в программе (Ошибок
три).
int main()
int n;
cin gt;gt; n;
int a = new int [n];
int S = 0;
for(int i = 0; i lt;= n; i++)
cin gt;gt; a[i];
S += a[i];
cout lt;lt; S;
return 0;

Задать свой вопрос
1 ответ

int main()

int n;

cin gt;gt; n;

int *a = new int [n]; //1)Тут обязан быть указатель на переменную, т.к. ты не можешь обратиться к области памяти, выделенной через new не через указатель

int S = 0;

for(int i = 0; i lt; n; i++) //2)позабыты скобки и 3)вместо lt;= просто lt;, т.к. индексация в плюсах начинается с нуля

cin gt;gt; a[i];

S += a[i];

cout lt;lt; S;

return 0;

Надежда
И ещё про скобки немного: скобки необходимы для того, чтоб строка на стоке S += a[i]; компилятор не выдал ошибку о том, что переменной i в данной области видимости не существует
Антон Бороухин
а в качестве третьей оплошности может быть неименье delete [] a? просто у меня преподша со скобками сама не дружит
Эмилия
Ну, здесь смотря как поглядеть. без delete твоя программка запустится и даже корректно закончится. Иное дело, что с теми ошибками, которые я перечислил, она даже не скомпилируется. Т.е. это является ошибкой с точки зрения компилятора. А вот как твоя преподша на это поглядит, я хз. Я бы доверял тому, что пишет компилятор, больше, чем преподу ;)
Виталя Архиповский
с эти согласна) просто на всякий случай
Даниил Шленцов
этим*
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт