Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Что я делаю не так?

Ярослав Ваниев Ученик (9), закрыт 2 месяца назад
В Sololearn по теме динамической памяти дали задание. Написать код который сначала запрашивает у пользователя размер массива, потом создаёт массив этого размера, а потом несколько раз запрашивает ввод циклом for что бы заполнить все слоты массива числами. Потом, он должен эти числа поочередно складывать. Второй день вожусь с этой дичью. Никак не могу понять какого хрена оно от меня хочет.
Код следующий:
#include <iostream>
using namespace std;

int main(){
int a;
cin>>a;
int arr[a];
int *p=arr;
int sum=0;
int nums=0;
int b;
p=p;
for (int i; i<=a; i++){
if (nums<=a){
cin>>arr[i];
nums++;
continue;
}else if(b<1){
i=0;
b++;
}
sum+=arr[i];
}
cout<<sum;
}

Возможность купить ответ за внутреннюю бесплатную валюту (биты) у нас на таких заданиях отбирают и вертись как хочешь. Возможности посмотреть комментарии не решив задачу тоже нет.
Дополнен 4 месяца назад
Почему то табуляции не сохранились когда я вставил код .
Лучший ответ
Def Гений (64543) 4 месяца назад
 int a; 
cin>>a;
int arr[a]; // Это статический массив
Некоторые компиляторы позволяют сделать такой трюк - объявить статический массив размером с переменную, но если в задаче речь о динамическом выделении памяти - то надо выделять динамически. А если открыть учебник и прочитать всё же, что такое динамическое выделение памяти и как оно реализуется, то можно узнать, что для этого используется оператор new.

Собственно, создание массива в дин. памяти, заполнение и вычисление суммы:
 #include  
using namespace std;

int main() {
int a;
cin >> a;
int* p = new int[a];
int sum = 0;

for (int i = 0; i < a; i++) {
cin >> p[i];
}

for (int i = 0; i < a; i++) {
sum += p[i];
}
delete[] p;
cout << sum;
return 0;
}

>Возможность купить ответ за внутреннюю бесплатную валюту (биты) у нас на таких заданиях отбирают и вертись как хочешь. Возможности посмотреть комментарии не решив задачу тоже нет.
Нахрена вообще использовать курсы, где можно "купить" ответ на упражения?

>Второй день вожусь с этой дичью.
И за два дня не пришло в голову прочитать учебник? Или тупо загуглить, как объявляется и заполняется динамический массив?
Задача уже решалась миллионы раз и пример решения содержится в любой книге по c++ или выдаётся по запросу наподобие "динамический массив создать и заполнить":
https://code-live.ru/post/cpp-dynamic-arrays
https://metanit.com/cpp/tutorial/4.12.php
и так далее, тысячи их
ПапаВысший разум (146197) 4 месяца назад
> Нахрена вообще использовать курсы, где можно "купить" ответ на упражения?
Чтобы у лохов было ощущение, что они чего-то достигли, тогда они будут продолжать донатить. Всё - как в онлайн-играх современных.
Ярослав Ваниев Ученик (9) Папа, скорее на случай если окончательно заколебаешься.
Ярослав ВаниевУченик (9) 4 месяца назад
Мля забыл про оператор new. Спасибо! А то так бы и сидел ещё пару дней.
Остальные ответы
Похожие вопросы