Jump to content

грешка в програма


Препоръчан пост

Дава ми следната грешка на ред 108.мисля че съм объркал нещо в декларирането на структурата във функциите или при извикването им в main функцията.Така и не разбрах как трябва да се извика правилно структурата във някоя функция,ще може ли обяснение. :)

 

error: expected primary-expression before 'int'|

 

кода за по-голямо удобство ще го постна в pastebin защото в сайта много трудно ще се чете а програмата е дълга.

 

http://pastebin.com/8c1hGX26

Link to comment
Сподели другаде

На първо време на ред 114 извикването на "nainiskacena()" става с 2 аргумента, а трябва да са 3. Погледни как си декларирал функцията. И е добре да ти стане навик, променливите да са инициализирани с 0, понеже никой не ти гарантира, че ще са 0, ако ти не го направиш.
Link to comment
Сподели другаде

Да тази грешка сега я видях,но грешката на 108 ред си остава.

оправих си и грешката във функцията srednacena чак сега я мернах,забравил съм да сложа че сумата трябва да се раздели на броя коли.

Link to comment
Сподели другаде

Оправих и другите грешки и тръгна,но по някаква причина не ми дава да въведа модел,просто го прескача сложих cin.ignore но не се получи.

Ето го вече оправения код.

http://pastebin.com/8c1hGX26

 

Също имам въпрос за декларирането на променливите във функцията void input(avtosalon koli[],int n) в скобите казвам на програмата какви променливи ще използвам и казвам че ще използвам масива koli от структурата avtosalon.

А когато извиквам функцията във main вече пиша само input(koli, n); тоест защо не уточнявам както преди че масива ще е от типа avtosalon?

Link to comment
Сподели другаде

Оправих и другите грешки и тръгна,но по някаква причина не ми дава да въведа модел,просто го прескача сложих cin.ignore но не се получи.

Ето го вече оправения код.

http://pastebin.com/8c1hGX26

 

Като цяло имам четири варианта в този случай.

  • Повторно извикване на
    cin.getline (koli[i].model, 30);

    , което да не се взема предвид.

  • Използване на
    cin.ignore()

    , което в случая явно не е помогнало.

  • Използване на допълнителен празен буфер.
  • Прочитане на текущия буфер до самия терминиращ символ. Това става с въвеждане на следния програмен код преди прочитането на съответния низ.

 

while (cin.get() != '\n');

 

Също имам въпрос за декларирането на променливите във функцията void input(avtosalon koli[],int n) в скобите казвам на програмата какви променливи ще използвам и казвам че ще използвам масива koli от структурата avtosalon.

А когато извиквам функцията във main вече пиша само input(koli, n); тоест защо не уточнявам както преди че масива ще е от типа avtosalon?

 

При извикване на функция променливи не се декларират. Посредством void input(avtosalon koli[], int n) вие декларирате, че масива ще е от тип avtosalon, а n ще е от тип int. При извикване на функцията, след декларирането, компилатора знае, че съответните стойности ще са от зададените типове.

Link to comment
Сподели другаде

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гост
Отговори на тази тема

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   Не можете да качите директно снимка. Качете или добавете изображението от линк (URL)

Loading...
×
×
  • Създай ново...