Премини към съдържанието
Wrath

Спешно. C++ (Масиви, някой ако може да метне рамо)

Препоръчан отговор


Някой може ли да помогне? Значи имам 20 часа за които трябва да оправя тази грешка,тръгна ми няколко пъти програмата но вече ми изписва : size is ambiguous. A на онлайн компилаторите работи докато създам някакъв масив и след това спира и ме връща на менюто .
Условие : 

Програма с функция main() и избор чрез меню на функции за:

Въвеждане от клавиатура на размерност (с проверка за коректност) и елементи на масив от цели числа C(K) (K<=25);

Формиране на нов масив CN(K) само от нечетните по стойност елементи и определяне на средно-аритметичната им стойност;

Презаписване на масива C(K) в масив CS(K) и сортиране на този масив в низходящ ред;

Извеждане на екран информация за съответния масив с пояснителен текст.

Направил съм я задачата. Тръгна ми няколко пъти, но вече не ще :Д Някой по-голям разбирач нека да погледне. Ще черпя ! 

https://pastebin.com/U8FHWwDx

Edit

Някои неща си бачкат

https://gyazo.com/b6696ff09a1c214d57c4241e9dd1ab64 , https://gyazo.com/383458c9fc3615e3069a7fa3559b5461
 

 

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Индексите на масивите при С/С++ са от 0 до size-1 , не както при тебе от 1 до size

  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Значи не гледах целия код, а само една фунция(enterArr()) и имам няколко забележки:

1 - size е глобална променлива.Добре е да избягваш глобалните променливи а и в този случай не е нужно да е глобална.Примено можеш да я връщаш като аргумент.

2 - size e int тоест число със знак.Не очакваш размер със отрицателен размер нали?По-добре е да използваш unsigned int.

3- какво ще стане ако въведа отрицателно число?

4 - "cout << "Masiv[" << i << "] = ";" не ме кефи виж printf как се използва.

5 -   "cin >> m;" променливата m е ненужна.

6 - "for(int i=1 ; i<size+1 ; i++)" ние програмистите сме странни и броим от 0 не от 1.

7 - "int* arr = new int;" заделяш динамична памет, но не виждам никъде да я освобождаваш.Освобождаването на динамичната памет е от особено значение!!!

8 - какво ще стане ако не можеш да вземеш тази динамична памет?Какво ще стане ако enterArr() фейлне?Тези проверки също са много важни.

Друго не се сещам.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 1 час, Martin Chekurov написа:

Значи не гледах целия код, а само една фунция(enterArr()) и имам няколко забележки:

1 - size е глобална променлива.Добре е да избягваш глобалните променливи а и в този случай не е нужно да е глобална.Примено можеш да я връщаш като аргумент.

2 - size e int тоест число със знак.Не очакваш размер със отрицателен размер нали?По-добре е да използваш unsigned int.

3- какво ще стане ако въведа отрицателно число?

4 - "cout << "Masiv[" << i << "] = ";" не ме кефи виж printf как се използва.

5 -   "cin >> m;" променливата m е ненужна.

6 - "for(int i=1 ; i<size+1 ; i++)" ние програмистите сме странни и броим от 0 не от 1.

7 - "int* arr = new int;" заделяш динамична памет, но не виждам никъде да я освобождаваш.Освобождаването на динамичната памет е от особено значение!!!

8 - какво ще стане ако не можеш да вземеш тази динамична памет?Какво ще стане ако enterArr() фейлне?Тези проверки също са много важни.

Друго не се сещам.

Благодаря за полезния коментар, ясно и точно ! 

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Командата е clear не cls.


Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.