Предмет: Информатика,
автор: rysa090725
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;
}
Ответы
Автор ответа:
1
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:
И ещё про скобки немного: скобки нужны для того, чтобы строка на стоке S += a[i]; компилятор не выдал ошибку о том, что переменной i в данной области видимости не существует
а в качестве третьей ошибки может быть отсутствие delete [] a? просто у меня преподша со скобками сама не дружит
Ну, тут смотря как посмотреть. без delete твоя программа запустится и даже корректно завершится. Другое дело, что с теми ошибками, которые я перечислил, она даже не скомпилируется. Т.е. это является ошибкой с точки зрения компилятора. А вот как твоя преподша на это посмотрит, я хз. Я бы доверял тому, что пишет компилятор, больше, чем преподу ;)
с эти согласна) просто на всякий случай
этим*
Похожие вопросы
Предмет: Информатика,
автор: HimuraOsamu
Предмет: Русский язык,
автор: Anasta1sia
Предмет: Английский язык,
автор: heowiejruiwiwiwiei
Предмет: Литература,
автор: Аноним
Предмет: Математика,
автор: костя0122