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

Ответы

Ответ дал: socool
0

int main(){

int n;

cin >> n;

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

int S = 0;

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

cin >> a[i];

S += a[i];

}

cout << S;

return 0;

}

Ответ дал: socool
0
И ещё про скобки немного: скобки нужны для того, чтобы строка на стоке S += a[i]; компилятор не выдал ошибку о том, что переменной i в данной области видимости не существует
Ответ дал: rysa090725
0
а в качестве третьей ошибки может быть отсутствие delete [] a? просто у меня преподша со скобками сама не дружит
Ответ дал: socool
0
Ну, тут смотря как посмотреть. без delete твоя программа запустится и даже корректно завершится. Другое дело, что с теми ошибками, которые я перечислил, она даже не скомпилируется. Т.е. это является ошибкой с точки зрения компилятора. А вот как твоя преподша на это посмотрит, я хз. Я бы доверял тому, что пишет компилятор, больше, чем преподу ;)
Ответ дал: rysa090725
0
с эти согласна) просто на всякий случай
Ответ дал: rysa090725
0
этим*
Похожие вопросы