Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   F1 для новичка (http://forum.oszone.net/showthread.php?t=129730)

SS3 24-01-2009 15:29 1017974

F1 для новичка
 
Передача параметров
Код:

main()
{
int count;       
count = 5;         
doubles(count);           
}           
doubles(num)     
int num;           
{                 
printf("%d",num*2);                                         
return 0;                                           
}

Программирую в DEV-C++, делаю как в книге("Моя первая программа на С\С++" А. Нейбауэр). Но, при первом запуске выбивает ошибку напротив doubles(count);.
Подскажите что делают в таких случаях, может мне нужно что-то добавить??

Alan85 24-01-2009 15:55 1017995

Код:

#include <stdio.h>
main()
{
int doubles(int);
int count;
count = 5;
doubles(count);
}
int doubles(num)
int num;
{
printf("%d",num*2);
return 0;
}

Должно так быть. У тебя не указано:
1. Тип функции;
2. Прототип функции до первого использования;

SS3 24-01-2009 16:18 1018020

Хм... просмотрел все главы про функции, и там не где не было сказано что нужно прописывать #include <stdio.h>.
Значит эта книга не ориентирована на новичка, хотя в введении было сказано совсем другое.
Ну теперь ошибка не выбивает где раньше, теперь она выбивает в int doubles(num),не пойму мы уже объявили функцию doubles.
Вот что выбивает компилятор:
Код:

10 E:\num.cpp `num' was not declared in this scope 
11 E:\num.cpp expected `,' or `;' before "int" 
12 E:\num.cpp expected unqualified-id before '{' token 
12 E:\num.cpp expected `,' or `;' before '{' token

Код:

1 #include <stdio.h>
2 main()
3 {
4 int doubles(int);
5 int count;
6 int num;
7 count = 5;
8 doubles(count);
9 }
10 int doubles(num)
11 int num;
12 {
13 printf("%d",num*2);
14 return 0;
15 }


Alan85 24-01-2009 16:23 1018023

Код:

#include <stdio.h>
main()
{
int doubles(int);
int count;
count = 5;
doubles(count);
}
int doubles(int num)
{
printf("%d",num*2);
return 0;
}

Вообще я всегда так пишу, да и большинство навернека

SS3 24-01-2009 16:35 1018035

Спасибо огромное, теперь запустилась. Ну разве я виноват, что так в этом учебнике было написано.
Наверно дальше буду учить по учебнике Гиберта Шилдта(Самоучитель C++. 3-е издание).

Busla 24-01-2009 17:39 1018081

Цитата:

Цитата SS3
Ну разве я виноват, что так в этом учебнике было написано. »

Указания типа операндов в строке после объявления функции - это синтаксис оригинального си, виноват скорее компилятор (его настройки?), что воспринимает только упрощённую современную запись.


Время: 19:03.

Время: 19:03.
© OSzone.net 2001-