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

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


Здравейте,трябва ми помощ за тази програма ако някой може да помогне ще съм му много благодарна.:wink12:

45510327_309126423259570_4047183812285693952_n.jpg

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


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

Отвори си google и почвай да търсиш по условията:

https://www.google.com/search?q=random+numbers+store+in+array&ie=utf-8&oe=utf-8

https://www.google.com/search?q=most+common+numbers+in+array&ie=utf-8&oe=utf-8

И така нататък. Какви програмисти ще станете, като елементари неща не можете да направите, дори условията да беше написала както трябва, не да качваш разни снимки с телефона. Нито е казано на какъв програмен език да се направят тези неща, нито виждам да си се опитала да напишеш нещо. Така ли ви учат в училище?

  • Любов 1

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


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

Е то тия задачи ако не можеш да решиш , по добре сменяй училището.

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


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

Задачата почва така.............

#include <iostream> 

using namespace std;

void enter_aray(int array[],int n)

{
  
  
  
  for (int c=0; c<n; c++)
  {
    cin>>array[c];
  }
}

int main()
{
  const int L=30; 
  int n;
  int array[L];
  
  
    cout <<" Vyvedi razmera na masiva"<<"\n";
    cin>>n;
  
  while (n<0 || n>30 )
  {
    cout <<" Vyvedi razmera na masiva"<<"\n";
    cin>>n;
  }		
  enter_aray(array,n);
}

Другото от Афторката

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


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

Подвеждаш нещо аФторката да и пишат двойка - после да обяснява какъв е размера на масива дефиниран с неинициализирана променлива


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


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

Подвеждаш нещо аФторката да и пишат двойка - после да обяснява какъв е размера на масива дефиниран с неинициализирана променлива

Казваш че е грешно ли?

Размера не се ли задава ръчно?

Мисля че го оправих

  • Харесва ми 1

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


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

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

  int n;
  int array[n];

Първо: на n не е зададена стойност и създаваш масив с бог знае какъв размер.

Второ: това, че после задаваш някаква стойност на n не променя размера на вече създадения масив.

Трето: използваш новата стойност на n като размер на масив което няма нищо общо с реалността.

Четвъртно: защо използваш число със знак за размер на масив?Или очакваш размер със - стойност?Използвай unsigned.

  • Харесва ми 2

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


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

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


  int n;
  int array[n];

Първо: на n не е зададена стойност и създаваш масив с бог знае какъв размер.

Второ: това, че после задаваш някаква стойност на n не променя размера на вече създадения масив.

Трето: използваш новата стойност на n като размер на масив което няма нищо общо с реалността.

Четвъртно: защо използваш число със знак за размер на масив?Или очакваш размер със - стойност?Използвай unsigned.

Хм интересно ще трябва да видя учебника Часта за масивите

Благодаря че ми казахте че съм сгрешил та погледнах учебника да си припомня че в С++ масивите им се задава размер ръчно

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


Линк към този отговор
Сподели в други сайтове
Хм интересно ще трябва да видя учебника Часта за масивите
Благодаря че ми казахте че съм сгрешил та погледнах учебника да си припомня че в С++ масивите им се задава размер ръчно
Не е проблема, дали задаваш размера „ръчно” (като стойност) или го изчисляваш с някаква формула, например. Същественото е, че това трябва вече да е станало, когато се стигне до дефиниране на масива!

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


Линк към този отговор
Сподели в други сайтове
преди 3 часа, jhoro написа:
преди 12 часа, petie1 написа:
Хм интересно ще трябва да видя учебника Часта за масивите
Благодаря че ми казахте че съм сгрешил та погледнах учебника да си припомня че в С++ масивите им се задава размер ръчно

Не е проблема, дали задаваш размера „ръчно” (като стойност) или го изчисляваш с някаква формула, например. Същественото е, че това трябва вече да е станало, когато се стигне до дефиниране на масива!

Разбрах го даже го редадактирах кода в съовествие с учебника благодаря ви пак

  • Харесва ми 1

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


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

Не си го оправил.Пак подаваш като аргумент грешно число.

Когато създаваш масив с определен размер по този начин е по-добре за използваш макро.

#define ARRAY_SIZE		(30)

VLA(variable length array) най-просто казано се използват когато не знаеш какъв размер ще ти трябва.Тъй като ти си го забил (тоест знаеш) е по-добре за използваш макро.

Освен това преди < C99 компилаторите не поддържаха VLA и там

int array[L];

няма да се компилира

Тогава вече трябва да използваш malloc.

int array = malloc( L * sizeof *array);

Първия вариант който беше постнал щеше да работи правилно ако беше преместил

int array[L];

след while-a

Когато подаваш масив на функция е много важно да се подава  правилно и неговия размер.Това е така, защото функцията няма как да знае размера и може да излезе извън него.Когато няма sizeof или &, array ще се преобразува в указател към първия елемент ( int*).Затова във функцията enter_aray можеш да подадеш масива и по този начин (най-често използвания)

void enter_aray(int* array,int n)

И както казах по-горе тук вече няма как да знаеш какъв е размера на array, защото sizeof array ще върне размера на указател.Затова той се подава отделно ( n)

  • Харесва ми 1

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


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

Не си го оправил.Пак подаваш като аргумент грешно число.

Когато създаваш масив с определен размер по този начин е по-добре за използваш макро.


#define ARRAY_SIZE		(30)

VLA(variable length array) най-просто казано се използват когато не знаеш какъв размер ще ти трябва.Тъй като ти си го забил (тоест знаеш) е по-добре за използваш макро.

Освен това преди < C99 компилаторите не поддържаха VLA и там


int array[L];

няма да се компилира

Тогава вече трябва да използваш malloc.


int array = malloc( L * sizeof *array);

Първия вариант който беше постнал щеше да работи правилно ако беше преместил


int array[L];

след while-a

Когато подаваш масив на функция е много важно да се подава  правилно и неговия размер.Това е така, защото функцията няма как да знае размера и може да излезе извън него.Когато няма sizeof или &, array ще се преобразува в указател към първия елемент ( int*).Затова във функцията enter_aray можеш да подадеш масива и по този начин (най-често използвания)


void enter_aray(int* array,int n)

И както казах по-горе тук вече няма как да знаеш какъв е размера на array, защото sizeof array ще върне размера на указател.Затова той се подава отделно ( n)

Така е дадено в учебниците така го знам Ако вие сте написали Учебник с удоволствие бих си го купил да го разуча

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


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

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

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

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

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

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

Вход

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

Вход

×

Информация

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